Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
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

Summe aus mehreren Dateien

Summe aus mehreren Dateien
02.09.2019 12:51:13
Philip
Hallo liebe Community,
ich habe einen Ordner mit vielen Excel Dateien.
Diese haben unterschiedliche (nicht logische) Dateinamen, aber immer den gleichen Aufbau.
Hier steht überall in Zelle "N30" eine Summe.
Ich suche etwas, womit ich die Werte aus jeder Datei in "N30" addiert ausgeben kann. Ist so etwas möglich?
Mit freundlichen Grüßen
Philip

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe aus mehreren Dateien
02.09.2019 12:55:24
Günther
Ja.
Aus meiner Sicht am besten mit Power Query.
Gruß
Günther
AW: Summe aus mehreren Dateien
02.09.2019 13:48:08
Philip
Hallo Günther,
bis jetzt habe ich Power Query nie benutzt.
Falls es damit funktioniert, gibt es eine kurze Anleitung wie mein Problem damit zu lösen wäre?
Mit freundlichen Grüßen
Philip
AW: Summe aus mehreren Dateien
02.09.2019 14:16:12
Günther
Moin Philip,
vorerst einmal meine Frage: Kannst/darfst du Power Query (als Add-In) installieren? Für 2010 liegt das als selbst installierender Download bei Microsoft bereit.
Wenn das geklappt hat, kannst du ja einmal mit dem "Groben" beginnen. Eine detaillierte Erklärung des Vorgehens bekommst du beispielsweise hier: http://www.excel-ist-sexy.de/alle-xlsx-eines-ordners-importieren/
Wenn du so weit bist, stelle hier 2-3 deiner *.xlsx zur Verfügung (gerne anonymisiert) und wir helfen dir weiter ...
Gruß
Günther
Anzeige
AW: Summe aus mehreren Dateien
02.09.2019 15:05:12
Philip
Hallo Günther,
im Grunde genommen verstehe ich es.
Jedoch ist in der Vorlage der Datei keine Tabelle enthalten (siehe Anhang).
Aus der Datei benötige ich jedes mal nur den Wert der Zelle "N30".
Leider gibt es auch Dateien, die mehr Zeilen haben, sodass ich nicht nach einem Muster die nicht benötigten Zeilen löschen kann.
Gibt es eine Möglichkeit für jede Datei nur die Zelle "N30", bzw. Zeile 30; Column14 anzuzeigen?
Gruß
Philip
AW: Summe aus mehreren Dateien
02.09.2019 15:39:41
Philip
Hallo nochmal,
nach der Power Query Variante, denke ich, dass ich eine Spalte hinzufügen muss, die die Zeilennummer angibt. Diese Spalte kann ich denn wiederum nach "30" filtern und habe mein Ergebnis.
Leider finde ich dazu nix passendes.
Oder bin ich damit auf dem Holzweg?
Gruß
Philip
Anzeige
AW: Summe aus mehreren Dateien
02.09.2019 15:47:38
Torsten
Hallo Philip,
falls du eine VBA Loesung moechtest. Dieser Code oeffnet alle xlsx Dateien in einem Folder und summiert den Inhalt aus N30 in die Zelle A1 im Workbook mit dem Code. Den Code in ein allgemeines Modul kopieren, den Pfad und die Tabellennamen sowie die Zielzelle anpassen. Code laufen lassen:

Sub N30()
Dim Pfad As String, Dateiname As String
Dim Twb As Workbook
Set Twb = ThisWorkbook
Pfad = "C:\DeinPfad\"      'Backslash am Ende wichtig
Dateiname = Dir(Pfad & "*.xlsx")    'wenn es .xlsx-Dateien sind
Application.ScreenUpdating = False
Do While Dateiname  ""
Workbooks.Open FileName:=Pfad & Dateiname
With Workbooks(Dateiname)
Twb.Sheets("Tabelle1").Range("A1") = CDbl(Twb.Sheets("Tabelle1").Range("A1")) + . _
Sheets("Tabelle1").Range("N30")  'hier nur die Tabellennamen und Zielzelle anpassen
.Close savechanges:=False
End With
Dateiname = Dir()
Loop
End Sub

Gruss Torsten
Anzeige
AW: Summe aus mehreren Dateien
02.09.2019 15:57:01
Günther
Ja klar geht das Philip,
wie schon geschrieben: einige wenige (2-3) (anonymisierte) Muster-xlsx und ich zeige dir den Rest. Der Link war ja nur der Komplett-Import der Daten.
So, jetzt bin ich wirklich on the road ...
Gruß
Günther
AW: Summe aus mehreren Dateien
03.09.2019 06:31:13
Philip
@Torsten:
Vielen Dank für die Mühen des Codes. Der funktioniert auch sehr gut und simpel.
Leider haben sich bei über 10.0000 Dateien auch einige eingeschlichen, die das Format nicht halten, sodass ein "Indexfehler" erscheint. Kann man noch etwas zur Fehlerbehebung einbauen?
Und kann man das öffnen jeder Datei verhindern, um die Zeit des Vorgangs zu verkürzen?
Vielen Dank, es funktioniert aber grundsätzlich sehr gut!
@Günther:
Eine stark anonymisierte Testdatei finden Sie hier:
https://www.herber.de/bbs/user/131805.xls
Der Aufbau der Datei ist immer identisch, sodass einfach der Wert in "N30" verändert werden kann und es neu gespeichert werden kann (=mehrere Dateien).
Da mich die Art von Power Query auch interessiert, bzw. ob es mit Power Query funktionieren würde.
Danke & Gruß
Philip
Anzeige
AW: Summe aus mehreren Dateien
03.09.2019 08:57:27
Torsten
Hallo Philip,
dazu muesste ich wissen, was du meinst mit

die das Format nicht halten

Und welchen Fehler bekommst du angezeigt? Vielleicht kannst du auch mir ein Beispiel zeigen?
Eines mit richtigen und eines mit dem falschen "Format".
Gruss Torsten
AW: Summe aus mehreren Dateien
03.09.2019 09:00:55
Philip
Hallo Torsten,
es liegt wohl daran, dass einige Dateien einen anderen Blattnamen haben.
Sobald der Code auf eine solche Datei stößt, bricht er ab.
Kann man das umgehen oder vorher alle Daten mit anderen Blattnamen automatisch löschen?
Gruß
Philip
AW: Summe aus mehreren Dateien
03.09.2019 09:33:18
Torsten
Dann koennte man das so abfangen. Der Code sucht nach dem Blattnamen. Wenn das nicht vorhanden ist, gehts einfach weiter zur naechsten Datei.
Das Oeffnen der Dateien muss leider sein, aber ich hab das hier geloest, indem ich diese in einer extra Excel Instanz im Hintergrund oeffne. Dadurch ist das nicht mehr sichtbar und geht, hoffe ich etwas schneller.

Sub N30()
Dim Pfad As String, Dateiname As String, Quelle As String, Ziel As String
Dim Twb As Workbook
Dim ws As Worksheet
Set Twb = ThisWorkbook
Quelle = "Quelltabellenname"     'hier den Namen der gesuchten Tabelle eingeben
Ziel = "Zieltabellenname"   'hier den Namen der Tabelle, wohin kopiert wird
Pfad = "C:\DeinPfad\"      'Backslash am Ende wichtig
Dateiname = Dir(Pfad & "*.xlsx")    'wenn es .xlsx-Dateien sind, sonst Endung anpassen
Application.ScreenUpdating = False
Do While Dateiname  ""
With CreateObject("Excel.Application")
With .Workbooks.Open(Pfad & Dateiname)
For Each ws In .Sheets
If ws.Name = Quelle Then
Twb.Sheets(Ziel).Range("A1") = CDbl(Twb.Sheets(Ziel).Range("A1")) + . _
Sheets(Quelle).Range("N30")
End If
Next ws
Dateiname = Dir()
End With
.Quit
End With
Loop
End Sub

Probier mal und lass mich wissen, was du denkst.
Gruss Torsten
Anzeige
AW: Summe aus mehreren Dateien
03.09.2019 10:44:07
Philip
Hallo Torsten,
danke für die weiteren Mühen!
Fehlermeldungen kommen nicht mehr. Jedoch dauert es nun extrem lange. Liegt das eventuell daran, dass es im "Hintergrund" läuft?
Gruß
Philip
AW: Summe aus mehreren Dateien
03.09.2019 10:48:04
Torsten
Bei 10.000 Dateien ein Wunder. Excel ist nun mal kein ICE. Das wird dir, denke ich mit PQ auch icht viel schneller gehen. Damit wirst du bei der Dateienanzahl wohl leben muessen.
AW: Summe aus mehreren Dateien
03.09.2019 11:42:47
Philip
Bei der vorherigen Codeversion, als alles im Vordergrund lief, ging es deutlich schneller.
Kann man beide Codes so vermischen, dass es wie beim ersten Versuch lief, aber die Fehlermeldungen überspringt?
Gruß
Philip
Anzeige
Hier mal ein Beispiel,...
03.09.2019 12:17:24
Case
Hallo Philip, :-)
... wie du es auch machen kannst: ;-)
Test mit über 1.000 Dateien...
Das dauert bei mir 25 Sekunden bei über tausend Dateien. Ist aber nur so, weil du nicht vorgeben kannst, dass die Dateien alle das entsprechende Tabellenblatt mit dem gleichen Namen beinhalten. Wäre das so, dauert es dann etwa 7 Sekunden. ;-)
Habe einen Code von hier angepasst - hat also keine Arbeit gemacht. Nur Copy & Paste und ein paar Codezeilen anpassen.
Man müsste auch nicht die Werte und Dateinamen in das Tabellenblatt schreiben - aber das kannst du anpassen, wenn du es anders haben willst. ;-)
Servus
Case

Anzeige
AW: Hier mal ein Beispiel,...
03.09.2019 13:13:13
Günther
Also mehr als 10.000 Files, ob sich da PQ "rechnet", weiß ich nicht. Solche Infos solltest du gleich bringen, da so etwas normalerweise eine Sache für eine Datenbank ist. Und warum *.xls, also das Antik-Format des Excel? Und eine (1) Datei für den Test war auch von meiner Seite nicht gesagt, denn es sollen ja aus mehreren Files die Zellen importiert werden.
Ich habe mal 3 Files im *.xlsx-Format daraus gemacht und das Ergebnis hier abgelegt: https://my.hidrive.com/lnk/b4gmDwDK
Gruß
Günther
AW: Hier mal ein Beispiel,...
03.09.2019 13:35:09
Philip
Hallo Case,
ich bin absolut beeindruckt!
Ich hätte nie gedacht, dass einem hier so geholfen wird...
Deine Testdatei funktioniert einwandfrei und in einem Spitzentempo.
Beim Auslesen der richtigen Dateien kommt jedoch nach einigen Sekunden immer eine "0" als Summe, ohne eine Fehlermeldung. Habe ich etwas falsch gemacht?
Gruß
Philip
Anzeige
Dazu werden natürlich dann...
03.09.2019 13:45:08
Case
Hallo Philip, :-)
... auch solche Testdateien benötigt. ;-)
Also am besten mal 2 Dateien die funktionieren und 2 die nicht klappen zippen und zur Verfügung stellen. Sonst lässt sich da wenig sagen/machen. ;-)
Servus
Case

AW: Dazu werden natürlich dann...
03.09.2019 14:23:13
Philip
Hallo Case,
ich weiß nun, dass es am Tabellenblattnamen liegt.
Der richtige Name lautet "Kalk-Tab".
Ich habe es in Zeile 4 und in Zeile 154.
Habe ich etwas vergessen?
Gruß Philip
AW: Dazu werden natürlich dann...
04.09.2019 06:49:30
Philip
Edit:
Sobald mein Tabellenblattname ein Leerzeichen oder ein Bindestrich enthält, funktioniert es nicht mehr.
Muss man den Namen dann irgendwie geändert im Code eingeben?
Anzeige
Leerzeichen im Tabellenblattname...
04.09.2019 07:48:25
Case
Hallo Philip, :-)
... musst du so abfangen: ;-)
Im Deklarationsteil:
' Der Tabellenblattname in den auszulesenden Dateien
Const strSheetQ As String = "Name M"
Und dann im Code der Funktion "ADOSheet":
If objTab.Name = "'" & strSheetQ & "$'" Then
Servus
Case

AW: Leerzeichen im Tabellenblattname...
04.09.2019 11:19:24
Philip
Hallo Case,
das funktioniert einwandfrei!
Vielen lieben Dank, super Arbeit. Hilft mir extrem weiter.
Gruß
Philip
AW: Summe aus mehreren Dateien
03.09.2019 10:50:10
Philip
Edit:
Ein Test mit 38 Dateien dauert 5 Minuten und spuckt dann eine Fehlermeldung "400" von Visual Basic aus.

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige