Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Masterdatei für alle Dateien eines Ordners

Masterdatei für alle Dateien eines Ordners
29.08.2014 07:43:04
WalterK
Guten Morgen,
mit dem nachfolgenden Code aus einem Forum wird aus allen Dateien eines Ordners das jeweils aktive Blatt in 1 Masterdatei kopiert. Funktioniert tadellos.
Wir müsste der Code geändert werden, damit alle Blätter aller Dateien in die Masterdatei kopiert werden.
Hier noch der Code:
Option Explicit
Sub zusammenfuegen()
Dim strDateiname As String
Dim wksZiel As Worksheet, wkbQuelle As Workbook, wksQuelle As Worksheet
Dim loLetzte1 As Long
Dim loLetzte2 As Long
Dim inLetzte As Integer
Application.ScreenUpdating = False
strDateiname = Dir(ThisWorkbook.Path & "\*.xls")
Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname  ""
If strDateiname  ThisWorkbook.Name Then
Set wkbQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & strDateiname)
Set wksQuelle = ActiveSheet 'ggf. = wkbQuelle.Worksheets(1)
loLetzte1 = wksZiel.UsedRange.SpecialCells(xlCellTypeLastCell).Row
With wksQuelle
loLetzte2 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
.Range(.Cells(3, 1), .Cells(loLetzte2, inLetzte)).Copy _
Destination:=wksZiel.Cells(loLetzte1 + 1, 1)
End With
wkbQuelle.Close True
End If
strDateiname = Dir
Loop
Set wkbQuelle = Nothing: Set wksQuelle = Nothing: Set wksZiel = Nothing
Application.ScreenUpdating = True
End Sub
Besten Dank für die Hilfe und Servus, Walter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Masterdatei für alle Dateien eines Ordners
29.08.2014 10:51:46
UweD
Hallo
der Code copiert aber alles in eine Tabelle untereinander und nicht die Blätter einzeln...
Sub zusammenfuegen()
Dim strDateiname As String
Dim wksZiel As Worksheet, wkbQuelle As Workbook, wksQuelle As Worksheet
Dim loLetzte1 As Long
Dim loLetzte2 As Long
Dim inLetzte As Integer
Dim inBlatt As Integer
Application.ScreenUpdating = False
strDateiname = Dir(ThisWorkbook.Path & "\*.xls")
Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname  ""
If strDateiname  ThisWorkbook.Name Then
Set wkbQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & strDateiname)
For inBlatt = 1 To wkbQuelle.Sheets.Count
Set wksQuelle = wkbQuelle.Worksheets(inBlatt)
loLetzte1 = wksZiel.UsedRange.SpecialCells(xlCellTypeLastCell).Row
With wksQuelle
loLetzte2 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
.Range(.Cells(3, 1), .Cells(loLetzte2, inLetzte)).Copy _
Destination:=wksZiel.Cells(loLetzte1 + 1, 1)
End With
Next inBlatt
wkbQuelle.Close True
End If
strDateiname = Dir
Loop
Set wkbQuelle = Nothing: Set wksQuelle = Nothing: Set wksZiel = Nothing
Application.ScreenUpdating = True
End Sub

so werden alle TabellenBlätter einer Datei abgearbeitet.
Gruß UweD

Anzeige
AW: Masterdatei für alle Dateien eines Ordners
29.08.2014 12:39:15
WalterK
Hallo Uwe,
besten Dank erst einmal für Deine Hilfe.
Mit Deinem Hinweis --- der Code copiert aber alles in eine Tabelle untereinander und nicht die Blätter einzeln... hast Du vollkommen Recht. Genau so will ich es auch haben, ich hatte mich nur falsch ausgedrückt. Also alles aus allen Blättern und allen Dateien soll in der Masterdatei in 1 Blatt untereinander kopiert werden.
Dein Code bricht, nachdem er aus 1 Datei alle Blätter eingelesen hat ab. Es kommt die Meldung: Laufzeitfehler, Index außerhalb des gültigen Bereichs und es wird die Zeile Set wksQuelle = wkbQuelle.Worksheets(inBlatt) gelb markiert.
Besten Dank, Walter

Anzeige
AW: Masterdatei für alle Dateien eines Ordners
29.08.2014 13:53:59
UweD
Hallo nochmal
Läuft bei mir super durch.
Kann es sein, dass du eine Datei in dem Ordner hast, in der KEIN Tabellenblatt vorhanden ist?
Wenn ich das simuliere (Also nur ein Diagrammplatt) dann tritt genau der Fehler auf.
Vorsichtshalber das so ändern... Dann werden nur die Tabellenblätter gezählt
For inBlatt = 1 To wkbQuelle.Worksheets.Count
Gruß UweD

TipTop! Ich habe zwar ...
29.08.2014 14:43:18
WalterK
Hallo Uwe,
... keine Diagrammblätter oder sonstiges gefunden aber die Änderung von Sheets auf Worksheets hats gebracht.
Läuft tadellos.
Danke und Servus, Walter

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige