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

Zusammenführen mehrerer Summen in einer Datei

Zusammenführen mehrerer Summen in einer Datei
19.04.2016 08:20:15
Sebastian

Hallo zusammen
in meiner Excel-Datei möchte ich aus verschiedenen automatisch generierten *.csv-Dateien jeweils die Summe der Spalte "U" zusammenfassen.
Die Dateien, die ich auswerten möchte, haben jedoch täglich andere Namen.
Über einen bereits funktionierenden Button baue ich die Liste der Dateien im Verzeichnis C:\Excel_Export\ neu auf. In diesem Zusammenhang soll zu jeder dieser Dateien die voreingestellte Spalte "U" neu summiert und in der Zusammenfassung gezeigt werden.
Vielen Dank vorab!
https://www.herber.de/bbs/user/105070.xlsm

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 08:47:30
Fennek
Hallo Sebastian,
es gibt hier im Forum viele HelferInnen, und jede(r) hat eigene Vorstellungen. Meine sind, auch schon vor 'trusty' keine xlsm-Dateien zu öffnen, die mein Andriod-Tablet eh nicht öffnen kann.
Vorschlag: lade ein xlsx-Datei hoch und hier im html-Fenster das Makro.
Mfg
(Stehen die csv-Dateien immer im selben Ordner, gibt es spezielle Namenskonventitionen?)

AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 08:53:57
Sebastian
Hallo,
verzeihung, das Thema hatte ich gerade nicht auf dem Schirm.
Anbei erneut die Datei, dieses Mal als .xlsx
https://www.herber.de/bbs/user/105072.xlsx

Anzeige
AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 09:07:54
Fennek
Hallo Sebastian,
auch wenn das ein no-go ist, ich versuche es ohne pc nur aus dem Gedächtnis.

Sub csc_lesen()
Dim wbq as workbook 'Quelle
sPfad = "c:\temp\" 'anpassen
For i = 1 to 100
If left(cells(i, 1), 4) = "2016" then
Set wbq = workbooks.open(sPfad & cells(i, 1))
Cells(i, 2) = worksheetfunction.sum(u:u)
End if
Next i
End sub
So, oder so ähnlich könnte es gehn.
Mfg

AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 09:10:23
Fennek
Hi,
Das Wichtigste fehlt noch:
Direkt vor 'next i'
Wbq.close 0
Mfg

AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 09:13:01
Fennek
Und:
.sum(wbq.sheets(1).columns("u:u"))
Na ja, der Kaffee hat noch nicht so ganz gewirkt.
Mfg
Awk

Anzeige
AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 11:26:22
Sebastian
Hallo und danke für die Hilfe,
aktuell habe ich folgenden Code eingebaut. Hoffe all deine Ergänzungen sitzen an der richtigen Stelle.
Sub csc_lesen()
Dim wbq As Workbook 'Quelle
sPfad = "c:\Excel_Export\"
For i = 1 To 100
If Left(Cells(i, 1), 4) = "2016" Then
Set wbq = Workbooks.Open(sPfad & Cells(i, 1))
Cells(i, 2) = WorksheetFunction.Sum(wbq.Sheets(1).Columns("u:u"))
wbq.Close 0
End If
Next i
End Sub
Dieser scheint mir die Werte nun jedoch in die Dateien schreiben zu wollen, aus denen er die Werte bezieht.
Ziel sollte es sein, dass er sie in die Index-Dateien schreibt, aus welcher ich das Makro ausführe, direkt neben den jeweiligen Dateinamen.
Leider reicht es mit meinem VBA verständnis noch nicht soweit, dass ich diesen Sprung selbst hinbekommen.
Danke u. Gruß,
Sebastian

Anzeige
AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 11:37:12
Fennek
Hallo Sebastian,
um auf der sicheren Seite zu sein, müsste dann auch die Zieldatei sauber referenziert werden.
Also am Anfang:
Dim WSZ as worksheet
Als ersten ausführbaren Befehl
Set WSZ = thisworksheet
Und zum speichern der Summe
Wsz.cells(i, 2) = usw.
Also noch ein Versuch...
Mfg

AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 14:35:39
Sebastian
Hallo,
ich habe den Code nun glaube ich mit deinen Anleitungen soweit gebracht, dass er die Felder tatsächlich ausliest.
Sub csc_lesen()
Dim wsz As Worksheet
Dim wbq As Workbook 'Quelle
sPfad = "c:\Excel_Export\" 'anpassen
Set wsz = ThisWorkbook.Worksheets("Tabelle1")
For i = 1 To 100
If Left(Cells(i, 1), 4) = "2016" Then
Set wbq = Workbooks.Open(sPfad & Cells(i, 1))
wsz.Cells(i, 2) = WorksheetFunction.Sum(wbq.Sheets(1).Columns("u:u"))
wbq.Close 0
End If
Next i
End Sub
Nun ergibt sich direkt das nächste, vermutlich *.csv-Problem.
Excel zeigt mir beim Öffnen der Datei alle Spalten säuberlich voneinander getrennt an.
Sobald die Datei durch den Code geöffnet wird, sind die Werte allerdings per Semikolon getrennt.
-- Die Folge: In Spalte U:U befindet sich für das Script... nichts!
Wie bringe ich nun dem Script bei, vor Auslesen der Spalte U:U die Werte auf die Spalten aufzuteilen?
Vielen Dank schon für Eure bisherigen Mühen, haben mir schon sehr geholfen.
Gruß,
Sebastian

Anzeige
AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 14:56:01
Fennek
Hallo,
irgendwie habe ich auf diese Meldung gewartet.
Es wird ein 'Text-inSpalten'-Befehl benötigt. Dieser Befehl merkt sich das zuletzt verwendete Trennzeichen.
Die Befehlsstruktur ist recht komplex, nutze bitte den Rekorder um die Syntax zu generieren. (Ohne Datei kann ich das eh nicht 'nachbauen'
Mfg

AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 15:22:18
Sebastian
Ja, so ist das mit den VBA-Laien.
Ich danke dir trotzdem für die Hilfe u. verabschiede mich mal in die Try and Error Phase =)
Gruß,
Sebastian

AW: Zusammenführen mehrerer Summen in einer Datei
19.04.2016 16:29:45
Fennek
Hallo,
jetzt habe ich es am PC getestet soweit das möglich ist ohne die Original-Dateien.
Diesen 'Text-to-Column'-Befehl zu programmieren war etwas unangenehm (mehr asl 3 Versuche).
Manchmal erkennt xl automatisch, wie eine csv-Datei getrennt ist, manchmal nicht. Deshalb die Abfrage "if cells(1, "U") = 0"
In meiner Demo läuft der Code, das ist aber keine Garantie, dass es auch bei dir läuft.

Sub csv_lesen()
Dim WSZ As Worksheet
Dim WBQ As Workbook 'Quelle
sPfad = "c:\Excel_Export\" 'anpassen
Set WSZ = ThisWorkbook.Worksheets("Tabelle1")
For i = 1 To 100
If Left(Cells(i, 1), 4) = "2016" Then
Set WBQ = Workbooks.Open(sPfad & Cells(i, 1))      '
If WSZ.Cells(1, "U") = 0 Then
With WBQ.Sheets(1)
.Columns(1).TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
End With
End If
WSZ.Cells(i, 2) = WorksheetFunction.Sum(WBQ.Sheets(1).Columns("u:u"))
WBQ.Close 0
End If
Next i
End Sub
mfg
(schwieriger als erwartet)

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige