Hallo!
Ich bastle im Moment an einem Makro, bei dem Daten aus einem Gesamtverzeichnis ausgelesen werden und in Abhängigkeit in einzelne passende Tabellenblätter kopiert werden, sodass man aus einem großen, chaotischen Verzeichnis viele sortierte kleine Verzeichnisse bekommt.
An sich - es funktioniert. Das Makro ist hauptsächlich Copy&Paste, deswegen hier nur der Ansatz (hab ich erweitert auf eben über 20 Tabellenblätter):
Option Explicit
Sub Zusammenfassung()
Dim i, a, b As Integer
Dim tbl1, tbl2 As ListObject
Dim loLetzte As Integer
Set tbl1 = Worksheets("xxx").ListObjects("Tabelle13")
Set tbl2 = Worksheets("yyy").ListObjects("Tabelle14")
If tbl1.ListRows.Count >= 1 Then
tbl1.DataBodyRange.Delete
End If
If tbl2.ListRows.Count >= 1 Then
tbl2.DataBodyRange.Delete
End If
a = 1
b = 1
With Worksheets("GSV").ListObjects("Tabelle1").DataBodyRange
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 1 To loLetzte
If .Cells(i, 2) = "xxx" Then
.Rows(i).Copy Destination:=Worksheets("xxx").Range(tbl1).Rows(a)
a = a + 1
End If
If .Cells(i, 2) = "yyy" Then
.Rows(i).Copy Destination:=Worksheets("yyy").Range(tbl2).Rows(b)
b = b + 1
End If
Next i
End With
End Sub
Insgesamt geht es hier um über 1000 Zeilen, die auf über 20 Tabellenblätter aufgeteilt werden sollen.
Zwei Probleme:
1. Er hört ab dem 10. Tabellenblatt einfach auf. Selbst wenn ich das Makro verkleinere und ab dem 10. Tabellenblatt beginnen lassen, führt es nichts aus. Woran kann das liegen? Es ist der selbe Code wie bei den Tabellenblättern 1-9...
2. Bis das Makro fertig ist, dauert es locker 30 Sekunden, ich denke mal je nach Computer noch viel länger. Habt ihr eine Idee, wie das Ganze effizienter geht?
Bin euch echt dankbar für Antworten!
|