Thema Datum  Von Nutzer Rating
Antwort
Rot alle Tabellenblätter aus mehreren Dateien aus einem Ordner in eine neue Datei kopieren
29.09.2021 15:13:09 Albert
NotSolved
01.10.2021 10:48:21 volti
*****
Solved
02.10.2021 15:14:37 Albert Lind-Liedtke
NotSolved
06.10.2021 15:35:10 Albert Lind
NotSolved

Ansicht des Beitrags:
Von:
Albert
Datum:
29.09.2021 15:13:09
Views:
493
Rating: Antwort:
  Ja
Thema:
alle Tabellenblätter aus mehreren Dateien aus einem Ordner in eine neue Datei kopieren

Hallo Zusammen,

ich benötige Hilfe bei einer Makro. Ich habe einen Ordner mit mehreren Excel Dateien, die jeweils mehrere Tabellenblätter mit der selben Struktur beinhalten. Die Makro sollte alle Tabellenblätter von allen Dateien in eine neue Datei oder Tabellenblatt untereinander kopieren.

 

Ich habe einen Code gefunden, der mir alle Tabellenblätter aus der geöffneten Excel Datei kopiert und in ein neues Tabellenblatt "Konsoliederung" einfügt. Nun bräuchte ich, dass noch die anderen Tabs aus den Dateien in dem Ordner eingefügt werden.

Ich habe mir schon einzelne Codes und videos angeschaut aber ich bekomme das nicht hin mit der Schleife, bzw. aus 2 Codes einen zu machen.

 

Das hier wäre der Code:

 

Sub Konsolidieren2()
'Konsolidierung ohne Überschriften ( Zeile 1 )
'In Spalte A wird der Name der Herkunfttabelle gelistet
Dim Wks As Worksheet
Dim Bereich As Range
Dim strLC As String
Dim i As Integer
Dim lngA As Long
Dim lngE As Long

Set Wks = Worksheets.Add
Wks.Name = "Konsolidierung"

For i = 2 To Worksheets.Count
 With Worksheets(i).UsedRange
  strLC = .Cells(.Rows.Count, .Columns.Count).Address
  Set Bereich = .Range("A2:" & strLC)
  lngA = Wks.Cells(Rows.Count, 1).End(xlUp).Row + 1
  lngE = Bereich.Rows.Count
  Wks.Range("A" & lngA & ":A" & (lngE + lngA - 1)) = Worksheets(i).Name
  Bereich.Copy Destination:= _
  Wks.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
 End With
Next i
End Sub

 

Und hier wäre mein Versuch, der allerdings nicht funktioniert:

 

ub MWSheetsAusMehrerenDateienEinlesen()
   Dim oTargetBook As Object
   Dim oSourceBook As Object
   Dim sPfad As String
   Dim sDatei As String
    
     Application.ScreenUpdating = False 'Das "Flackern" ausstellen
     Application.DisplayAlerts = False 'Keine Fehlermeldungen anzeigen
    
     'Schritt 1: Arbeitsmappe festlegen, in die die neuen Sheets eingefügt werden...
     Set oTargetBook = ActiveWorkbook
    
     'Wichtiger Hinweis: Die Arbeitsblätter dürfen nicht vorhanden sein!
     'Alternativer Umbau: Löschen evtl. bereits vorhandener Arbeitsblätter
    
     'Schritt 2: Schleife über alle Excel Dateien in einem Verzeichnis
     sPfad = "C:\Users\LIL1BE\Desktop\TEST MAKRO KST"
     sDatei = Dir(CStr(sPfad & "*.xl*")) 'Alle Excel Dateien
    
     Do While sDatei <> ""
    
         'Schritt 3: öffnen der Datei und Datenübertragung
         Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True) 'nur lesend öffnen
        
         'Es wird immer das erste Tabellenblatt Sheets(1) kopiert!
         oSourceBook.Sheets(1).Copy after:=oTargetBook.Sheets(oTargetBook.Sheets.Count)
        
         'Es wird versucht den Dateinamen als Arbeitsblattnamen zu setzen.
         'Ist dieser bereits vorhanden wird der Fehler abgefangen und das neue Blatt
         'bekommt keinen anderen Namen und behält den typischen Namen Tabelle x
         On Error Resume Next
        
         'Arbeitsblattname wird der Dateiname
         oTargetBook.Sheets(oTargetBook.Sheets.Count).Name = sDatei
        
         'Wenn ein Fehler aufgetreten ist, wird dieser resettet
         If Err.Number <> 0 Then
             Err.Number = 0
             Err.Clear
         End If
         On Error GoTo 0
        
         'Schritt 4: Datei wieder zu machen und nächste Schleifenrunde
         oSourceBook.Close False 'nicht speichern
        
         'Nächste Datei
         sDatei = Dir()
     Loop
    
     Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
     Application.DisplayAlerts = True 'Fehlermeldungen wieder anzeigen
    
     'Kleine finale Fertig-Meldung
     MsgBox "Fertig!", vbInformation + vbOKOnly, "Hinweis!"
    
     'Variablen aufräumen
     Set oTargetBook = Nothing
     Set oSourceBook = Nothing
End Sub
 

Ich wäre für jede Hilfe sehr danbar.

 

Viele Grüße,

 

Albert


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot alle Tabellenblätter aus mehreren Dateien aus einem Ordner in eine neue Datei kopieren
29.09.2021 15:13:09 Albert
NotSolved
01.10.2021 10:48:21 volti
*****
Solved
02.10.2021 15:14:37 Albert Lind-Liedtke
NotSolved
06.10.2021 15:35:10 Albert Lind
NotSolved