Hallo zusammen,
ich habe ein Makro, bei dem ich nun einen äußeren Loop einfügen will. Allerdings weiß ich nicht, wie ich das am effektivsten mache. Der innere Loop sieht wie folgt aus: ich habe in einem Ordner mehrere Excel-Dateien (über 100). Aus diesen Dateien möchte ich auf einem Arbeitsblatt Werte aus einer bestimmten Zeile rauskopieren und in eine "Zusammenfassung" packen. Dazu startet das Makro, indem es die erste Datei öffnet, die von mir in der Zusammenfassungs-Datei in Zelle B2 angegeben Zeile auswählt und die Daten kopiert. Diese werden dann in die Zusammenfassungs-Datei eingefügt, die Quelldatei geschlossen und dann wird die nächste Datei geöffnet. Dort wird dann wieder die gleiche Zeile ausgewählt, kopiert und unter die Werte aus der erten Quellddatei in der Zusammenfassung eingefügt.
Nun brauch ich das ganze aber variabler. Es sind immer genau 9010 Zeilen je Quelldokument und ich möchte die so in meiner Zusammenfassung zusammenführen, dass zum Beispiel Zeile 1 aus jeder Quelldatei auf Tabellenblatt 1 der Zusammenfassung untereinander steht, auf Tabellenblatt 2 dann die Zeile 2 aus jeder Quelldatei etc.
Ich müsste also in dem äußeren Loop sagen, dass er ein neues Tabellenblatt erstellt, dort in Zelle B2 den aktuellen auszulesenden Zeilenwert (bis max. 9010) schreibt, dann das innere Makro abläuft und dann wieder zum äußeren Makro springt.
Kann mir da jemand auf die Sprünge helfen? Das wäre super! :-)
Hier der Code für den inneren Loop:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | Dim datei As String
Dim pfad As String
Dim i As Integer
i = 1
pfad = "C:\Users\"
datei = Dir(pfad)
Do While datei <> ""
Workbooks.Open Filename:=pfad & datei
i = i + 1
ThisWorkbook.Sheets( "Tabelle1" ).Cells(i + 6, 2) = ActiveSheet.Cells(j, 9)
ThisWorkbook.Sheets( "Tabelle1" ).Cells(i + 6, 3) = ActiveSheet.Cells(j, 10)
ThisWorkbook.Sheets( "Tabelle1" ).Cells(i + 6, 4) = ActiveSheet.Cells(j, 11)
ActiveWorkbook.Close savechanges:= False
datei = Dir()
Loop
|
|