ich habe eine Tabelle 1 in der viele Daten stehen. In Spalte O stehen bestimmte Namen. Jeder dieser Namen hat auch sein eigenen Datenblatt. Ich hätte jetzt gerne, dass wenn der Name in der Spalte, gleich einem Namen der Tabellenblätter ist, dass er mir die ganze Zeile kopiert.
Bis jetzt habe ich das einzeln gemacht und hat auch einwandfrei funktioniert.
Option Explicit
Sub einzeln()
Dim lastrow As Long, lastfree As Long
Dim I As Long
lastrow = Worksheets("Tabelle1").Cells(Rows.Count, 15).End(xlUp).Row
lastfree = Worksheets("Name1").Cells(Rows.Count, 15).End(xlUp).Row + 1
For I = lastrow To 2 Step -1
If Worksheets("Tabelle1").Cells(I, 15) = "Name1" Then
Worksheets("Tabelle1").Range("a" & I & ":BM" & I).Copy _
Destination:=Worksheets("Name1").Cells(lastfree, 1)
lastfree = lastfree + 1
End If
Next I
End Sub
Jetzt hätte ich aber gerne, dass er es gleichzeitig bei allen Tabellenblätter funktioniert, damit ersparte ich mir natürlich viel Arbeit, insbesondere wenn neue Namen dazukommen...Mein Code ist folgender. allerdings passiert einfach nichts :(
Option Explicit
Sub tst()
Dim J As Integer
Dim lastrow As Long, lastfree As Long
Dim I As Long
For J = 1 To Sheets.Count
For I = lastrow To 2 Step -1
Worksheets(J).Activate
lastrow = Worksheets(J).Cells(Rows.Count, 15).End(xlUp).Row
lastfree = Worksheets(J).Cells(Rows.Count, 15).End(xlUp).Row + 1
If Worksheets("Tabelle1").Cells(I, 15) = Worksheets(J).Name Then
Worksheets("Tabelle1").Range("a" & I & ":BM" & I).Copy _
Destination:=Worksheets(J).Cells(lastfree, 1)
lastrow = lastfree + 1
End If
Next I
Next J
End Sub
An was liegt das?Oder kann ich das überhaupt nicht so machen?
Viele Grüße