ich bastle mir gerade eine Tabelle zusammen und bin schon wieder an meine Grenzen gestoßen.
Mein Markro sucht aus einem Tabellenblatt einige Felder aus und trägt sie in ein anderes Tabellenblatt als Liste ein. Das klappt auch sehr gut.
Jetzt möchte ich jedoch das Makro so erweitern, dass es in allen relevanten Tabellenblättern sucht. Das könnten bis an die 80 werden.
Alle relevanten Tabellenblätter haben den gleichen Aufbau. Der Name des Tabellenblattes ist immer eine vierstellige Zahl.
Wenn ich eine Schleife von 1000 bis 9999 laufen lasse, dauert mir das zu lang.
Mit dem Blattindex möchte ich nicht arbeiten, weil ich weitere Tabellen hinzufügen möchte.
Eine Liste aller angefertigten Tabellenblätter befindet sich ebenfalls auf einem Tabellenblatt in der Arbeitsmappe. Kann man da was ableiten, mit einem Array vielleicht?
Ich würde mich freuen, wenn mir jemand auf die Sprünge helfen könnte.
Hier mein Code:
Sub Seriendruck()
Dim last As Integer
Application.ScreenUpdating = False
For i = 2 To Worksheets("3036").Cells(3, Columns.Count).End(xlToLeft).Column - 1 Step 2
If Worksheets("3036").Cells(Range("GZ").Row + 2, i).Value > 0 Then
last = Worksheets("ListeDB").Cells(Rows.Count, 1).End(xlUp).Row + 1
With Worksheets("ListeDB")
.Cells(last, 1) = Worksheets("3036").Range("Name").Value
.Cells(last, 2) = DateSerial(Worksheets("3036").Range("Jahr").Value, 1, 1)
.Cells(last, 3) = DateSerial(Worksheets("3036").Range("Jahr").Value, 12, 31)
.Cells(last, 4) = Worksheets("3036").Cells(Range("Land").Row, i).Value
.Cells(last, 5) = Worksheets("3036").Cells(Range("GZ").Row, i + 1).Value
.Cells(last, 6) = Worksheets("3036").Cells(Range("GZ").Row, i).Value
.Cells(last, 7) = Worksheets("3036").Cells(Range("GZ").Row + 2, i).Value
End With
End If
Next
Worksheets("3036").Activate
Application.ScreenUpdating = True
End Sub
Und kann man in der With-Anweisung was machen? Das sieht ja echt schlimm aus.Ich freue mich auf eure Tipps und vielen Dank im Voraus.
Viele Grüße
Kulo