ich versuche mehrere gleiche Exceldateien zu einer Tabelle zusammenzuführen.
Ausgangslage:
-Alle Dateien sind gleich aufgebaut, Zeile 1 mit Überschrift, Spalte A-H wird genutzt
-Dateien haben unterschiedliche Zeilenlänge
-Überschrift (Zeile 1 und 2) soll nicht kopiert werden.
-Zieldatei ist vorhanden, Daten sollen immer in das selbe Tabellenblatt (=alte Daten überschreiben)
Folgendes VBA habe ich gefunden, welche auch im Prinzip funktioniert:
Dim oTargetSheet As Object
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Dim lErgebnisZeile As Long
Dim s As Long
Dim z As Long
Range("a2:j400").ClearContents
Set oTargetSheet = ActiveWorkbook.Sheets("Tabelle1")
lErgebnisZeile = 2 'Ergebnisse eintragen ab Zeile 2
sPfad = "T:\6_Stab\Vorlagen\07 IAKS\"
sDatei = Dir(CStr(sPfad & "IAKS Team*.xl*")) 'Alle Excel Dateien
Do While sDatei ""
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True) 'nur lesend öffnen
For z = 3 To oSourceBook.Sheets("Oktober 2018").UsedRange.Rows.Count
'Keine Leerzeilen verarbeiten
If Trim(CStr(oSourceBook.Sheets("Oktober 2018").Cells(z, 1).Value)) "" Then
For s = 1 To oSourceBook.Sheets("Oktober 2018").UsedRange.Columns.Count
'Spalte 1 - Dateinamen
'oTargetSheet.Cells(lErgebnisZeile, 1).Value = sDatei
'Spalte 2 bis n - Tabelleninhalte des Arbeitsblattes "Tabelle1"
oTargetSheet.Cells(lErgebnisZeile, s + 1).Value = _
oSourceBook.Sheets("Oktober 2018").Cells(z, s).Value
Next s
lErgebnisZeile = lErgebnisZeile + 1
End If
Next z
oSourceBook.Close False 'nicht speichern
sDatei = Dir()
Loop
Folgende Probleme habe ich:
1) Ich benötige nun nicht den Dateinamen in Spalte A, sondern dort die Inhalte der Quelldatei aus Spalte A.
2)Zudem benötige ich quasi das selbe Makro nochmals um weitere Dateien aus anderen Quelldateien (gleiches Prinzip wie oben) einzulesen. Diese sollen aber nicht unterhalb der bisherigen Eintragungen erscheinen sondern bspw. in Spalte L, Zeile 2 (also daneben).
Leider schaffe ich es nicht diese beiden Punkte zu realisieren, mein VBA reicht hierzu nicht aus.
Habt ihr ne Lösung ?