VBA Ergbisse aus Blatt A in Blatt B proizieren

Ab.ab

Newbie
Dabei seit
Dez. 2018
Beiträge
2
Hallo,

ich habe 2 Arbeitsblätter in Excel erstellt.
In Spalte G:G kann man Faktoren eingeben. z.B 1,2,3,4 usw.
Wenn ich einen Faktor angebe, zeigt er mir die Ergebnisse in Blatt B an. So weit so gut.

Ich möchte aber nicht, wie in Blatt B, die ganze Tabelle angezeigt bekommen und in den jeweiligen Zeilen dann die Ergebnisse, sondern ich möchte, dass er mir nur die Zeilen anzeigt, wo ein Faktor angegeben ist und natürlich das Ergebniss.

Da ich in Excel keine andere Lösung sehe, als einen Filter und ich das so aber nicht haben möchte, wollte ich es mit VBA probieren. Mir würde jetzt spontan eine DoLoop Schleife einfallen, weiß aber nicht wie ich das umsetzen kann. (Bin in meiner Ausbildung noch nicht so weit).

Also zusammengefasst: Wenn ich in eine Spalte einen Faktor bestimme, soll mir das Ergebniss auf einem anderen Blatt ausgegeben werden. Nur die Zeile, mit dem Faktor. Nicht die ganze Tabelle!

Im Anhang die Tabelle.
Ich hoffe jemand versteht mein Wischwasch von Erklärung.. 😂
 

Anhänge

Janush

Lt. Junior Grade
Dabei seit
Mai 2008
Beiträge
478
Da fehlen noch ein paar Angaben :-)

Kann es passieren, dass nur in Zeile 1 und 3 ein Faktor steht und wenn ja, was dann?
Kann die Tabelle beliebig lang sein, oder bleibt das immer gleich?

Klingt aber eher nach einer Wenn Abfrage als SVerweis wenn man es denn mit Formeln machen möchte...
 

Drexel

Lt. Commander
Dabei seit
Jan. 2012
Beiträge
1.209
Wenn das Ziel ist VBA zu üben/lernen ist das doch eine ganz gute Aufgabe. Ansonsten lässt sich das evtl. wie die Vorredner schon sagten evtl. auch anders lösen.

Lerne das Problem in kleine Probleme zu zu zerlegen und suche Dir dazu Codefragmente über google, die Du nachher zusammensetzt um Dein Problem zu lösen, das ist letztendlich die hohe Kunst.

Das sind alles Basics die man auch leicht finden kann, schau wie Du auf einzelne Zellen lesend und schreiben zugreifen kannst, lass das mal testweise in einer Messagebox ausgeben, bau die eine Schleife um über die Zeilen zu iterieren, lass Dir wieder Werte ausgeben, dann statt ausgeben in das zweite Blatt schreiben. Wenn Dein Code auf Fehler läuft, kannst Du das gerne hier posten und nach konkreter Hilfe fragen, aber ich denke niemand wird Dir einen fertigen Code schreiben.
 

SteveGER

Ensign
Dabei seit
Okt. 2012
Beiträge
142
Hiermit hättest du schonmal ein Grundgerüst wie du es herausfiltern könntest.
Wie Drexel aber bereits sagte, ist eine einfachte und gute Aufgabe um mit VBA warm zu werden und die Basics zu verstehen.

Sub CB()

LastRow = Cells(Rows.Count, 1).End(xlUp).Row
maxRow = Cells(1, Columns.Count).End(xlToLeft).Column

For x = 1 To LastRow
For y = 1 To maxRow
Select Case y
Case 6:
If Cells(x, y) <> "" Then
'Zeile auswählen und auf neues Arbeitsblatt kopieren (Mehrdimensionales Array?)
End If
End Select
Next y
Next x

End Sub

Gibt auch durchaus schönere Varianten das zu programmieren, als Grundgerüst sollte es aber genügen.
Edit: Funktioniert nur wenn die Tabelle ab A1 beginnt, wie eigentlich üblich.
 
Top