Das Archiv des Excel-Forums

Zusammenführung aus mehreren Dateien


Betrifft: Zusammenführung aus mehreren Dateien
von: Bernd

Geschrieben am: 13.09.2019 09:34:46
Hallo,

ich habe zwar ähnliche Fragestellungen mit Lösungen im Netz gefunden, aber zu 100% passen die bei mir leider nicht wegen der Nebenbedingung, dass der Import aus einem bestimmte Tabellenblatt erfolgen soll und in der Zusammenführung der Name der Quelldatei stehen sollte.
Im Detail:

Ich möchte in einer Datei (Zusammenführung) gerne zeilenweise die Daten aus Quelldateien einsammeln. Da einzulesenden Dateien möchte ich gerne per Mehrfachmarkierung im Explorer auswählen. Pro Datei interessiert mich nur ein bestimmtes Tabellenblatt, das in jeder Quelldatei "Daten" heißt. Der Aufbau der einzulesenden Tabelle aus jeder Datei ist immer identisch. Der Spaltenkopf befindet sich stets in Zeile 4 und die Quelldaten beginnen ab Zeile 5.

Am Schluss sollte in der Zusammenführung eine große Liste identisch zum Aufbau der Quelldateientstehen mit der Besonderheit, dass in Spalte A jeweils der Dateiname der Quelldatei stehen sollte!

Ich habe Musterdateien zum Testen erstellt:

https://www.herber.de/bbs/user/132019.zip

Vielen Dank im Voraus für ein passenden Code, der meine "Nebenbedingungen" berücksichtigt.

Viele Grüße
Bernd

Betrifft: AW: Zusammenführung aus mehreren Dateien
von: 1712878.html
Geschrieben am: 13.09.2019 12:33:34
Hi,
Du hast ja nur xlsx-Dateien gepostet. Zeig doch mal, was Du an Programmiercode schon hast. Dann kann mann mal gucken, wo Anpassungsbedarf besteht.

gruß
Regina

Betrifft: AW: Zusammenführung aus mehreren Dateien
von: 1712913.html

Geschrieben am: 13.09.2019 14:03:33
Hallo Regina,

nachfolgender Code gefällt mir schon recht gut. Dort muss ich die Quelldateien in ein vorgegebens Verzeichnis reinkopieren. Persönlich würde mir flexible Auswahl über Explorer besser gefallen.

Die Spaltenköpfe werden es aus jeder Quelldatei rüberkopiert : Einmal reicht mir natürlich.

Wäre das "anpassungsfähig"?

Viele Grüße
Bernd

PS: Hier der Code:

Option Explicit
Sub MWTabellenAusMehrerenDateienEinlesen()
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
Application.ScreenUpdating = False
'Schritt 1: Neues Arbeitsblatt für die Ergebnisse erstellen
Set oTargetSheet = ActiveWorkbook.Sheets.Add
lErgebnisZeile = 1 'Ergebnisse eintragen ab Zeile 1
'Schritt 2: Schleife über alle Excel Dateien in einem Verzeichnis
sPfad = "C:\Herber\LISTE\"
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
'Datenübertragung alle genutzten Zeilen und Spalten
For z = 1 To oSourceBook.Sheets("Daten").UsedRange.Rows.Count
'Keine Leerzeilen verarbeiten
If Trim(CStr(oSourceBook.Sheets("Daten").Cells(z, 1).Value)) <> "" Then
For s = 1 To oSourceBook.Sheets("Daten").UsedRange.Columns.Count
'Spalte 1 - Dateinamen
oTargetSheet.Cells(lErgebnisZeile, 1).Value = sDatei
'Spalte 2 bis n - Tabelleninhalte des Arbeitsblattes "Daten"
oTargetSheet.Cells(lErgebnisZeile, s + 1).Value = _
oSourceBook.Sheets("Daten").Cells(z, s).Value
Next s
lErgebnisZeile = lErgebnisZeile + 1
End If
Next z
'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
'Variablen aufräumen
Set oTargetSheet = Nothing
Set oSourceBook = Nothing
End Sub

Betrifft: AW: Zusammenführung aus mehreren Dateien
von: 1713025.html
Geschrieben am: 14.09.2019 10:48:41
Hi,
das sollte dann so funktionieren:

Option Explicit
Sub MWTabellenAusMehrerenDateienEinlesen()
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
Dim var_dateien As Variant
Dim lng_zaehler As Long
Application.ScreenUpdating = False
'Schritt 1: Neues Arbeitsblatt für die Ergebnisse erstellen
Set oTargetSheet = ActiveWorkbook.Sheets.Add
lErgebnisZeile = 1 'Ergebnisse eintragen ab Zeile 1
var_dateien = Application.GetOpenFilename(MultiSelect:=True)
For lng_zaehler = 1 To UBound(var_dateien)
'Schritt 3: öffnen der Datei und Datenübertragung
Set oSourceBook = Workbooks.Open(var_dateien(lng_zaehler), False, True) 'nur lesend ö _
ffnen
'Datenübertragung alle genutzten Zeilen und Spalten
For z = 1 To oSourceBook.Sheets("Daten").UsedRange.Rows.Count
'Keine Leerzeilen verarbeiten
If Trim(CStr(oSourceBook.Sheets("Daten").Cells(z, 1).Value)) <> "" Then
For s = 1 To oSourceBook.Sheets("Daten").UsedRange.Columns.Count
'Spalte 1 - Dateinamen
oTargetSheet.Cells(lErgebnisZeile, 1).Value = sDatei
'Spalte 2 bis n - Tabelleninhalte des Arbeitsblattes "Daten"
oTargetSheet.Cells(lErgebnisZeile, s + 1).Value = _
oSourceBook.Sheets("Daten").Cells(z, s).Value
Next s
lErgebnisZeile = lErgebnisZeile + 1
End If
Next z
'Schritt 4: Datei wieder zu machen und nächste Schleifenrunde
oSourceBook.Close False 'nicht speichern
Next
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
'Variablen aufräumen
Set oTargetSheet = Nothing
Set oSourceBook = Nothing
End Sub
Gruß Regina

Betrifft: AW: Zusammenführung aus mehreren Dateien
von: 1713419.html

Geschrieben am: 17.09.2019 10:44:48
Hallo Regina.

läuft schnell und perfekt ab! Ein kleines Detail vielleicht, die Spaltenköpfe werden wiederholt. Im Prinzip brauche ich die gar nicht. Könnte ich in der Sammeldatei einmal in Zeile 1 eintragen. Kann man doch so "optimieren"?

Viele Grüße und schon mal ein dickes Danke!
Bernd

Betrifft: AW: Zusammenführung aus mehreren Dateien
von: 1713468.html
Geschrieben am: 17.09.2019 14:07:59
Moin, dann müsstest Du in dieser Zeile:
For z = 1 To oSourceBook.Sheets("Daten").UsedRange.Rows.Count
die 1 durch eine 2 ersetzen.

Gruß
Regina

Betrifft: Perfekt! Danke!
von: 1713600.html

Geschrieben am: 18.09.2019 09:36:26
Nochmals besten Dank,
viele Grüße
Bernd

Excel-Beispiele zum Thema "Zusammenführung aus mehreren Dateien"

Druck aus mehreren Tabellenblättern auf eine Druckseite download Daten von mehreren Blättern auf ein Druckblatt download
Werte in mehreren Spalten sortieren download Den selben Bereichsnamen in mehreren Tabellenblättern download
Tabelle nach mehreren Kriterien summieren download Auswahl von Zellen in mehreren Zeilen verhinden download
Wert von einer Zelle zur anderen in mehreren Tabellen übernehmen download Benannte Bereich aus mehreren Arbeitsmappen importieren download
Filtern über VBA nach mehreren Kriterien download Kosten nach mehreren Kriterien erfassen download
Alle Dateien im Verzeichnis öffnen download Dateien listen download
400 leere Textdateien anlegen download XL-Dateien in UserForm listen download
XL5/7-Dateien nach XL8 konvertieren download Dateien aus Listbox auslesen und öffnen download
Excel-Dateien eines Ordners listen download Alle Dateien ab einem bestimmten Datum listen download
Alle Dateien eines Verzeichnisses drucken download Textdateien verbinden download
Serie von Dateien in das XL5/7-Format konvertieren download Verzeichnisbaum aufrufen und Dateien in ListBox auflisten download
Dateien einer Ordnerliste in einer Tabelle zusammenstellen download Daten aus allen Dateien eines Verzeichnisses zusammenführen download
Hyperlinks zu allen Excel-Dateien eines Verzeichnisses erstellen download Dateien in einem Verzeichnis und Unterverzeichnissen suchen download
XL-Dateien aus Haupt- und Unterverzeichnissen einlesen download Die Eigenschaft "Stichwort" in allen Dateien eines Ordners ändern download
Textdateien vergleichen und Unterschiede dokumentieren download Löschen von Dateien beim Schließen einer Arbeitsmappe download
Grafikdateien suchen download Erste Blätter aus allen Dateien eines Verzeichnisses sammeln download
Von allen Arbeitsblättern der Mappe HTML-Dateien anlegen download Textdateien auslesen und in Werte in Zellen eintragen download
Werte nach Gruppen aufteilen und in gesonderten Dateien speichern download Fragen aus Textdateien in UserForm-Label einlesen download
Text in Textdateien suchen und Fundzeilen in Tabelle ausgeben download Alle Dateien löschen, die älter als 30 Tage sind download
Dateien mit Angabe des Dateidatums mit Hyperlink listen download Dateien listen und gekennzeichnete öffnen download
UserForm-TextBoxes-Texte in Textdateien speichern download Tabellenblattinhalte in getrennten Textdateien speichern download
Dateien listen und Blätter in neue Arbeitsmappe kopieren download Bei Doppelklick Textdateien in Editor öffnen download
Dateiliste mit allen xl-Dateien und Hyperlinks erstellen download Aufruf von Textdateien protokollieren download
Textdateien mit einer Zeile in Tabelle einlesen download Alle Textdateien eines Verzeichnisses importieren download
Dateien öffnen, Verknüpfungen aktualisieren, speichern, schießen download Dateien suchen download
Dateien mit bestimmtem Inhalt suchen download