24.08.2020, 00:43
(Dieser Beitrag wurde zuletzt bearbeitet: 24.08.2020, 06:31 von WillWissen.
Bearbeitungsgrund: Unnötige Leerzeilen entfernt, Codetags
)
Hi zusammen,
ich möchte mehrere Excel Dateien miteinander kombinieren und deren Inhalt in eine Masterdatei schreiben.
Hierfür habe ich auch bereits Code der wunderbar funktioniert.
Es gibt nur einen Haken: Ich muss für jede weitere Spalte, die ich kopieren möchte eine weitere Zeile Code einfügen. (Manche meiner Dateien haben allerdings 60 Spalten :19: )
Dieses Problem würde ich gerne mit einer Art Schleife beheben.
Hat hierfür jemand eine Idee?
Viele Grüße
Phalanx
ich möchte mehrere Excel Dateien miteinander kombinieren und deren Inhalt in eine Masterdatei schreiben.
Hierfür habe ich auch bereits Code der wunderbar funktioniert.
Es gibt nur einen Haken: Ich muss für jede weitere Spalte, die ich kopieren möchte eine weitere Zeile Code einfügen. (Manche meiner Dateien haben allerdings 60 Spalten :19: )
Dieses Problem würde ich gerne mit einer Art Schleife beheben.
Hat hierfür jemand eine Idee?
Code:
Sub getData()
Dim wb As Workbook, ws As Worksheet
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("C:\temp\Test") 'Bitte Pfad ändern
y = ThisWorkbook.Sheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row + 1
For Each wbFile In fldr.Files
If fso.GetExtensionName(wbFile.Name) = "xlsx" Then
Set wb = Workbooks.Open(wbFile.Path)
For Each ws In wb.Sheets
wsLR = ws.Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To wsLR
ThisWorkbook.Sheets("sheet1").Cells(y, 1) = ws.Cells(x, 1)
ThisWorkbook.Sheets("sheet1").Cells(y, 2[/b]) = ws.Cells(x, 2)
ThisWorkbook.Sheets("sheet1").Cells(y, 3[/b]) = ws.Cells(x, 3)
ThisWorkbook.Sheets("sheet1").Cells(y, 4[/b]) = ws.Cells(x, 4)
y = y + 1
Next x
Next ws
wb.Close
End If
Next wbFile
End Sub
Viele Grüße
Phalanx