ich muss aus 2000+ seperaten Arbeitsblättern Daten in eine Tabelle zusammenführen. Ich kenne mich zwar mit Excel aus, aber da benötige ich die Hilfe der Community.
ja, die Tabelle ist leider von einem Nicht-Excel-Mensch aufgebaut worden. Das ist so auch erstmal nicht mehr zu ändern.
@Fennek: Alle Dateien können in einen Ordner gepackt werden. Soweit war ich auch und ich hatte auch einen VBA Code zu zusammenführen. Der streikt nur, weil alle Arbeitsblätter den gleichen Titel haben "Produktinformation zur Rüstvorbereitung". Nach zwei zusammengeführten Blättter hat der Code einen Fehler gemeldet.
Es sollen alle Daten selektiert werden. Bedeutet, Spaltenüberschriften sollen die Überschriften sein(z.B. Handling, Anguß, etc.) Darunter sollen die Daten aus jedem einzelnen Arbeitsblatt geschrieben werden.
es ist eine langweilige Fleißarbeit: nichts für mich.
Ein paar Tipps:
Die Schleife über alle Dateien:
Code:
Sub Einlesen() iPath = "c:\temp\" '<<<<< anpassen iFile = dir (ipath & " *.xls*") do while len(iFile) '############ hier der Code zum Einlesen iFile = dir loop end sub
Ungeprüft:
In der Ergebnisdatei (die mit dem Makro) in der ersten Zeile die Überschriften:
17.10.2017, 14:12 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2017, 15:12 von Rabe.)
Hi Fennek,
habe den Code zusammengebastelt:
Code:
Sub Einlesen() iPath = "Y:\Projekte\Laufende\MAsterworkbook Rüstvorbereitung\Workbooks\" iFile = Dir(iPath & "*.xls*") Do While Len(iFile) With Workbooks.Open(iPath & iFile) lr = ThisWorkbook.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1 Cells(lr, "A") = iFile Cells(lr, "B") = Cells(4, "A") 'Artikel Cells(lr, "C") = Cells(9, "A") 'Artikel-Nr Close 0 End With iFile = Dir Loop End Sub
Der öffnet aber nur alle Arbeitzsblätter separat. SOnst macht der nix.
das ist ein ziemliches Missverständnis. Es fehlen die anderen Variablen und diverse Punkte:
Code:
Sub Einlesen() iPath = "Y:\Projekte\Laufende\MAsterworkbook Rüstvorbereitung\Workbooks\" iFile = Dir(iPath & "*.xls*") Do While Len(iFile) With Workbooks.Open(iPath & iFile) lr = ThisWorkbook.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1 Cells(lr, "A") = iFile Cells(lr, "B") = .Cells(4, "A") 'Artikel Cells(lr, "C") = .Cells(9, "A") 'Artikel-Nr ######## hier für jede Spalte eine Zeile einfügen ###### Close 0 End With iFile = Dir Loop End Sub