4.3k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich zerbreche mir gerade, wie ich es schaffen kann, dass ich mehrere Exceldateien in einer zusammenfassen kann.

Die verschiedenen Dateien befinden sich alle in einem Ordner. Nun möchte ich es schaffen, dass die ausgewählten Datensätze in einer neuen Datei untereinander erscheinen. Schön wäre es zudem, wenn sich das die "Hauptdatei" aktualisieren würde, wenn Änderungen in den anderen Dateien gemacht werden.

Ich denke hier sind so viel gute Leute - da sollte das doch kein Problem sein ;)

danke

euer xxl

7 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo xxl,

da kann man nur pauschal antworten, da Deine Infos =0 sind.

Es ist möglich sowohl per Formel als auch per VBA in der Hauptdatei Verküpfungen zu den Quelldateien zu installieren.

Eine bessere Antwort lässt Deine Frage leider nicht zu.

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo Rainer,

du hast recht mit deiner Aussage, dass mein Problem wenig Infos enthält.

Machen wir es anschaulicher:

Ich habe einen Hauptordner auf meinem Desktop. In diesen Ordner sollen nun verschiedene Exceldateien eingefügt werden.
Also Hauptordner: "Sammelordner"
Exceldatei "Info1", "info 2", usw

Die Exceltabellen haben immer denselben Aufbau.
Nun möchte ich eine weitere Exceldatei ("Auswertung") in den selben Hauptordner einfügen, die bestimmte Informationen aus den schon vorhandenen "Info.." Dateien holt.


Die Zelle A1 soll von allen "Info.."Dateien abgefragt werden und in "Auswertung" in die erste Spalte ab C3 untereinander eingefügt werden.

Zudem sollte es möglich sein, dass die Auswertungsdatei erkennt, wenn neue "Info.." Datei hinzugefügt werden und die "Auswertung" immer aktualisiert wird, wenn man sie aufruft.

Ich hoffe jetzt ist mein Problem ein bischen genauer formuliert ;)

Gruß
xxl
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo xxl,

nach Deiner erneuten Schilderung komme ich zum Schluss, dass eine Formellösung nicht das Gelbe vom Ei wäre.

Daher würde ich eine Makrolösung favorisieren, wobei ich dafür nicht der richtige Ansprechpartner bin.

Vielleicht hilft Dir ein Makrospezialist.

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo xxl,
ich hab von Jörg Lorenz ein Makro gefunden, das nur ein wenig angepasst werden muß, um deine Anforderungen erfüllen.

Gruß
fedjo

http://www.excel-vba.de/dateien/geschlossenemappen.zip
0 Punkte
Beantwortet von
Hallo

danke für eure Einträge. Ich habe jetzt eine Lösung gefunden, die mein Problem gelöst hat. Musste ein bischen suchen, aber es hat sich gelohnt.

Ich finde dieses Forum wirklich klasse!!

Euer

XXL
0 Punkte
Beantwortet von hooker Mitglied (797 Punkte)
Hallo xxl,

Ich habe jetzt eine Lösung gefunden, die mein Problem gelöst hat.

Gib uns doch auch den Link dazu. ;-)

LG,
Hooker
0 Punkte
Beantwortet von
Ich habe nicht einen Link, sondern mehrere Ideen zusammengebaut. So sollen z.B auch Duplikate bei einer aktualisierung sofort beseitigt werden.


Sub Einlesen()
Call EventsOff
Dim Dateien As Integer
Dim DateiName As String
Dim zeile As Long
With Application.FileSearch
.NewSearch
.LookIn = ActiveWorkbook.Path
.Filename = "*.xls"
If .Execute() > 0 Then
For Dateien = 1 To .FoundFiles.Count
DateiName = Dir(.FoundFiles(Dateien))
If DateiName <> ThisWorkbook.Name Then
Workbooks.Open Filename:=.FoundFiles(Dateien)
zeile = ThisWorkbook.Sheets(1).Cells(Rows.Count, 5).End(xlUp).Row + 1
Workbooks(DateiName).Sheets(1).Range("B5:B107").Copy
ThisWorkbook.Sheets(1).Range("A" & zeile).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Workbooks(DateiName).Close
End If
Next Dateien
End If
End With
Call EventsOn
Call DoppelteNr
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Sub DoppelteNr()

Dim iRow As Integer, iRowL As Integer

iRowL = Cells(Cells.Rows.Count, 1).End(xlUp).Row
For iRow = iRowL To 1 Step -1
If WorksheetFunction.CountIf(Columns(1), Cells(iRow, 1)) > 1 Then
Rows(iRow).Delete
End If
Next iRow
End Sub


Dazu habe ich noch eine Userform eingebaut:


Private Sub Aktualisieren_Click()

Call Einlesen
test.Hide
End Sub

Private Sub UserForm_Click()

End Sub


Vielleicht hilft dies weiteren Usern.

Euer
xxl
...