Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus 3 Exceldateien in einer zusammenführen

Forumthread: Daten aus 3 Exceldateien in einer zusammenführen

Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 11:32:34
seppele
Hallo,
ich benötige eure Hilfe bei einem nicht gern gelesenem Vorhaben (denke ich mir zumindest :))
Es geht um das leidige Thema gemeinsames Bearbeiten von Exceldateien, leider ist das nicht möglich bei unserer Version und Access wird aufgrund End of Life ja bald mal eingestampft und bei uns in deaktiviert.

Mein Vorhaben:
- Es gibt 3 Exceldateien für 3 Benutzer, jeder macht da drin seine Einträge.
- In einer Zusätzlichen Datei (Admindatei) wird dann die Datenmenge zusammengeführt.
- Eine Datei hat 5 Spalten, alle Dateien sind ident aufgebaut, ich möchte gerne in der Admindatei über vba ein Makro erstellen das über einen Button ausgelöst wird und dann alle Daten aus den 3 Benutzer Dateien untereinander darstellt, diese können dann durch ein Datumsfeld wieder sortiert werden.

Kann mir jemand helfen wie ich das Umsetzen kann?

Danke euch
seppele
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 11:54:23
daniel
Hi
Hi
per VBA so
das Zieltabellenblatt muss vorhanden sein und sollte die Überschriften enthalten.
der Code geht von einer Überschriftenzeile aus
dim Dat(1 to 3) as string

dim D

Dat(1) = "pfad & Dateiname Datei1"
Dat(2) = "pfad & Dateiname Datei2"
Dat(3) = "pfad & Dateiname Datei3"

'Zieltabelle leeren, Überschrift behalten
thisworkbooks.Sheets("Ziel").usedrange.Offset(1, 0).ClearContents

for each D in Dat
with Workbooks.Open(D, readonly:=true)
.Sheet("Quelltabelle").Usedrange.Offset(1, 0).Resize(, 5).Copy 'Daten kopieren ohne Überschrift
thisworkbook.Sheet("Ziel").Cells(Rows.Count, 1).end(xlup).Offset(1, 0).PasteSpecial xlpastevalues
.Close False 'Schließen ohne speichern
end with
next
Anzeige
AW: Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 13:37:09
seppele
Mir gefällt der Gedanke dieser Variante :)

Ich hab jetzt eine Datei erstellt in der ich ein Modul hinzugefügt habe und in dieser eine Sub in die ich dann deinen Code kopiert habe, anschließend hab ich die Pfade und Tabellenblattnamen angepasst.

Wenn ich sie ausführe bekomme ich einen Fehler:
Das thisworkbooks hab ich auf ThisWorkbook geändert, jetzt bleibt es beim ausführen aber hängen mit der Fehlermeldung "Objekt unterstützt diese Eigenschaft oder methode nicht" und zwar in folgender zeile
.Sheet("start").UsedRange.Offset(1, 0).Resize(, 5).Copy 'Daten kopieren ohne Überschrift



Hier der gesamte Code (Anzeige nennt sich das tabellenblatt in der Admindatei, start nennt sich das Tabellenblatt in den Quelldateien)


Sub Files_Auslesen()
Dim Dat(1 To 3) As String
Dim D

Dat(1) = "M:\WE_FEHLERHAFT\Fehlerhafte_Warenanlieferungen_1.xlsm"
Dat(2) = "M:\WE_FEHLERHAFT\Fehlerhafte_Warenanlieferungen_2.xlsm"
Dat(3) = "M:\WE_FEHLERHAFT\Fehlerhafte_Warenanlieferungen_3.xlsm"

'Zieltabelle leeren, Überschrift behalten
ThisWorkbook.Sheets("Anzeige").UsedRange.Offset(1, 0).ClearContents

For Each D In Dat
With Workbooks.Open(D, ReadOnly:=True)
.Sheet("start").UsedRange.Offset(1, 0).Resize(, 5).Copy 'Daten kopieren ohne Überschrift
ThisWorkbook.Sheet("Anzeige").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
.Close False 'Schließen ohne speichern
End With
Next
End Sub



Muss ich die Daten in eine Formatierte Tabelle umwandeln oder reicht ein normales Tabellenblatt mit Werten und einer Überschrift?
Darf in den Quelldateien oberhalb der Überschriften noch was anders stehen oder muss die Überschrift in Zeile 1 stehen?

Vielen Dank für eure Hilfe!!
Anzeige
AW: Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 14:01:42
daniel
ich hab den Code jetzt nicht auf Rechtschreibung kontrolliert. Kann schon sein, dass hier und da mal was falsch geschrieben ist.

Einfaches Tabellenblatt reicht.

die ersten beiden Offsets (beim ClearContents und beim Copy) berücksichtigen den Überschriftenbereich, der nicht gelöscht wird, bzw nicht kopiert wird. Hier kannst du die Anzahl der Zeilen einstellen)

Gruß Daniel
Anzeige
AW: Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 14:27:05
seppele
Danke habs hinbekommen, die AI hat mir noch geholfen den Fehler zu finden :)!

Hier der Code falls jemand das auch mal braucht!
Sub Files_Auslesen()

Dim Dat(1 To 3) As String
Dim D As Variant
Dim wb As Workbook

Dat(1) = "M:\file1.xlsm"
Dat(2) = "M:\file2.xlsm"
Dat(3) = "M:\file3.xlsm"

'Zieltabelle leeren, Überschrift behalten
ThisWorkbook.Sheets("Anzeige").UsedRange.Offset(1, 0).ClearContents

For Each D In Dat
Set wb = Workbooks.Open(D, ReadOnly:=True)
If Not wb Is Nothing Then
wb.Sheets("start").UsedRange.Offset(6, 0).Resize(, 6).Copy 'Daten kopieren ohne Überschrift
ThisWorkbook.Sheets("Anzeige").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
wb.Close False 'Schließen ohne speichern
Else
MsgBox "Error opening file: " & D
End If
Next

Set wb = Nothing
End Sub
Anzeige
AW: Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 12:01:12
seppele
Danke Case,
ich hab jetzt mal nach diesem PowerQuery geschaut, wen ich das aber richtig verstanden habe ist das ein Tool mit dem ich daten aus allen möglichen Quellen einlesen und dann sogar zusammenführen kann.
Das ist aber ein manuelles Doing und ich müsste das jedesmal händisch machen, das würde ich gerene automatisieren, ich hätte gerne auf Knopfdruck eine Tabelle in der einfach alle Daten der 3 anderen Dateien angezeigt werden.

Theoretisch könnte das ja sogar ein SVERWEIS oder liege ich da falsch, was ich dabei aber nicht klar ist, wie gebe ich die Range an, die ist ja nicht Fix da die immer grösser wird und vor allem wie sage ich dem Programm das Datei 1 fertig ausgelesen ist und nun Datei2 und dann Datei 3 dran ist.

Ein wunsch viel Fragezeichen:)
Anzeige
AW: Daten aus 3 Exceldateien in einer zusammenführen
02.07.2024 12:11:49
Yal
??: "Das ist aber ein manuelles Doing und ich müsste das jedesmal händisch machen"
Schreibst Du etwa die Excel-Formel jedesmal auf's Neu, wenn Du eine bereit gespeicherte Exceldatei wiederverwendest?

Power Query wird im Hintergrund mitgespeichert. Es ist ein sogenannte "No Code/Low Code"-Programmierumgebung. Im ggt zu VBA ist es web-fähig (Office 365 / Sharepoint) und von Sicherheitstandard 30 Jahren reifer als VBA.

Die einzige Aktion, die es zu tun gibt, ist auf die Rückgabetabelle (also das Ergebnis der QP-Abrage) zu rechtsklicken und "aktualisieren". Alternativ: Alt+F5 oder Strg+Alt+F5.

VG
Yal
Anzeige
Das ist richtig -...
02.07.2024 12:16:10
Case
Moin, :-)

... du kannst da aus allen möglichen Quellen Daten abrufen und transformieren. Die Zeilenanzahl spielt dabei keine Rolle. Wenn du es einmal fertig hast, musst du nur noch "Aktualisieren". Das wäre dann das einzige "Händisch". ;-)

Hier mal ein Link, der das gut beschreibt: ;-)

https://www.tabellenexperte.de/massen-import-mit-powerquery/

Servus
Case
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige