Schleife
15.06.2020 15:03:18
Julia
ich stehe vor folgendem Problem:
Mit einem Programm habe ich jede Menge Excel Files erstellt.
(Mehr oder weniger ein File pro Stunde (Tag) über ein Jahr gerechnet.)
Die Files heißen alle z.b abcd0, abcd1, abcd2 aber manche Stunden (Nacht) fehlen auch
also im Endeffekt:
abcd0
abcd1
abcd2
abcd3
abcd20
abcd21
....
abcd8760
diese Files liegen alle in einem Ordner.
Mein Ziel ist es aus jeder dieser Files die Spalte G - hier befinden sich 20 werte - zu kopieren
und in einer neuen Exceldatei "neu" zusammenzuführen.
Über 'Macro aufzeichnen' hab ich es bishher, mit nur wenigen Excelfiles so gemacht:
ChDir "C:\Users\x\Documents\x"
Workbooks.Open Filename:= _
"C:\Users\x\Documents\x\abcd0.csv"
Range("G1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("neu .xlsx").Activate
Range("A1").Select
ActiveSheet.Paste
Application.WindowState = xlNormal
Windows("abcd0.csv").Activate
ActiveWindow.Close
und für das nächste file
ChDir "C:\Users\x\Documents\x"
Workbooks.Open Filename:= _
"C:\Users\x\Documents\x\abcd1.csv"
Range("G1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("neu .xlsx").Activate
Range("B1").Select
ActiveSheet.Paste
Application.WindowState = xlNormal
Windows("abcd1.csv").Activate
ActiveWindow.Close
Aber für meine vielen Files ist das händisch zu viel Aufwand.
Wie kann ich also festlegen, dass quasi der Reihe nach alle Files geöffnet werden, Spalte G kopiert wird und in "neu" eingefügt wird (pro File immer in eine neue Spalte natürlich)
Ideal wäre:
liegt kein File vor (in meinem Beispiel hier gibt es abcd4-abcd19 nicht) sollte eine Spalte freigehalten werden
"neu":
SpalteA SpalteB SpalteC SpalteD SpalteE .... SpalteT SpalteU SpalteV ...
abcd0 abcd1 abcd2 abcd3 [leer] ... [leer] abcd20 abcd21 ...
Ist das möglich?
Ich würde mich wahnsinnig über Hilfe freuen!
Liebe Grüße