Hallo, da bin ich wieder.
Ich hab etwas Neues.
Und zwar würde ich gern in der Spalte i alle Zellen auf deren Inhalt überprüfen. Wenn eine Zelle in der Spalte i den Inhalt 2 hat, dann will ich den Inhalt der selben Zeile (in der eine 2 gefunden wurde), jedoch der Spalte B in eine anderes Sheet, nennen wir es Tabelle2, kopieren. Am besten in A2 des Sheets „Tabelle2“.
Wird die nächste 2 in Spalte i (Sheet: „Tabelle1“) gefunden, soll ebenfalls der Inhalt der Zelle der selben Zeile jedoch der Spalte B (s.o.) in das Sheet „Tabelle2“ kopiert werden. Diesmal in die Zelle A3.
Wichtig ist, dass die Reihenfolge gleich bleibt und es keine leeren Zellen zwischen den übernommenen Werten in „Tabelle2“ gibt.
Soll heißen, dass der erste kopierte Wert der ersten 2(von oben) an die Stelle A2 („Tabelle2“) kopiert wird. Der nächste Wert, also der zweiten gefundenen 2, an die Stelle A3 („Tabelle2“) usw.
Dachte eigentlich ich bekomme das hin, weil nicht so schwierig…ist scheinbar aber nicht so. Immer noch ein Anfänger eben…
Hab verschiedenes versucht. Bis jetzt kamen nur Fehlermeldungen.
Danke natürlich schon mal im Vorraus. Bin schon auf Vorschläge gespannt…
Gruß
Hi,
du willst also alles Zellen der Spalte I durchgehen, ob dort eine 2 eingetragen ist und anschließend die Werte der Spalte B der gleichen Zeile in das Worksheet „Tabelle2“ kopieren. Dort sollen die Werte das Von der Zelle A1 bis Axx in der gleichen Reihenfolge eingetragen werden?
Poste doch mal deinen Code, vielleicht fehlt da ja nur eine Kleinigkeit und man kann das einfach anpassen!
Gruß,
Vandroy
Das würde ich so machen:
Dim zaehl1, zaehl2 As Integer ' Zähler für Tabelle1 bzw. 2
Dim i As Integer
i = 3 ' für Suche in Spalte 3
zaehl2 = 2 ' erste zu füllende Zeile in Tabelle2
For zaehl1 = 1 To 500 ' Bitte 500 durch gewünschte Endzeile der Suche ersetzen!
If Sheets("Tabelle1").Cells(zaehl1, i) = 2 Then
Sheets("Tabelle2").Cells(zaehl2, 1) = Sheets("Tabelle1").Cells(zaehl1, 2) ' 2 weil Spalte B
zaehl2 = zaehl2 + 1
End If
Next
Viele Grüße,
BellHouse
Es wird davon ausgegangen, dass das Makro gestartet wird, wenn man sich auf dem Blatt der Quelldaten befindet (dieses also aktiv ist)
Du benötigst dazu zwei Schleifenzähler:
Dim Zeile_Quelle As Long
Dim Zeile_Ziel As Long
'Initialisierung
Zeile_Quelle = 1 'Start bei Zeile 1
Zeile_Ziel = 2 'So wie beschrieben soll der erste Wert in Zelle „A2“ geschreiben werden, sonst einfach den Startwert ändern
In der Schleife für die Quelldaten (vorausgesetzt, diese sind untereinander ohne Lücke):
Do While Range(„I“ & Zeile_Quelle).Value"" AND Zeile_Quelle
Hallo Sirob!
Wäre natürlich schön, wenn Du Deine Versuche mit dabeigegeben hättest. So scheint mir das ein aufruf zu sein: „programmier das doch bitte!“
Also: was hast Du bisher gemacht?
Gruß
Wolfram
Können das jetzt alle lesen?
Erst mal danke. Werd mich wohl erst wieder Montag drum kümmern können, dann post ich natürlich auch gern mal meinen Versuch.
Gruß Sirob
Habs jetzt doch noch hinbekommen. Mein Fehler war, dass ich z keinen Anfangswert zugewiesen habe.
hier meine Lösung:
Dim i As Long
Dim z As Long
Sheets(„Tabelle1“).Select
z = 2
For i = 1 To 100
If Cells(i, 9).Value = 2 Then
Sheets(„Tabelle2“).Cells(z, 1).Value = Sheets(„Tabelle1“).Cells(i, 4).Value
z = z + 1
End If
Next i
End Sub
Danke und vermutlich bis bald 
Grüße