Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

große Dateimenge zusammenfassen

große Dateimenge zusammenfassen
19.05.2005 15:45:31
Oliver
Hallo Excel-Gemeinde,
ich habe 365 csv-Dateien, die zunächst konvertiert werden müssen und anschließend zu einer Datei zusammengefasst werden sollen. Als Excel-Datei umbenannt lassen sie sich aber auch öffnen.
Aus manchen Zellen (immer die gleichen (Beispiel: A4)) möchte ich Mittelwerte berechnen und aus anderen wiederum Summen.
Dies ist für mich mit den Formeln eigentlich kein Problem, aber die große Dateimenge ist halt lästig. Wenn ich blos zwei oder drei Dateien hätte, würde es kein Problem darstellen.
Ich hoffe, Ihr habt mich verstanden und könnt mich unterstützen. Da ich mich mit Visual Basic nicht auskenne, wäre es gut, wenn Ihr mir möglichst viel bei einem evtl. Code erklären könntet.
Hier eine Beispieldatei:
https://www.herber.de/bbs/user/22957.xls
Gruß Oliver

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

Betreff
Datum
Anwender
Anzeige
AW: große Dateimenge zusammenfassen
19.05.2005 16:12:15
MichaV
Hi,
da fallen mir erstmal 2 Vorgehensweisen ein:
1. Alle csv per Makro in eine Excel- Mappe und dann mittels 3D- Summe =SUMME(Tabelle5:Tabelle25!A2) die notwendigen Werte ermitteln, könnte aber an der Datenmenge scheitern. Vorteil: Du kannst danach entscheiden, was Du berechnen willst. Nachteil: Datenmenge.
2. Die CSV's nur einlesen und verarbeiten (Summen und Mittelwerte ziehen), aber nicht im Excel- Blatt speichern. Übrig bleibt nur eine Tabelle mit Deinen Ergebnissen. Dafür reichen 3 Tabellenblätter, die einzelnen Werte aus den CSV's kriegst Du aber nicht zu Gesicht.
Die Werte müssen natürlich in allen 365 Dateien an der gleichen Stelle stehen.
Gruss- Micha
Vielleicht weißt Du schon, welche Lösung für Dich in Frage kommt.
Anzeige
AW: große Dateimenge zusammenfassen
19.05.2005 16:25:31
Oliver
Hallo Micha,
leider habe ich Deinen zweiten Vorschlag nicht verstanden. Vielleicht könntest Du ihn mir noch einmal erklären.
Aber der erste Vorschlag klingt sehr vernünftig. So hatte ich das auch vor. Nur leider kann ich ein solches Makro nicht schreiben. Kannst Du mir da weiterhelfen?
Gruß Oliver
AW: große Dateimenge zusammenfassen
19.05.2005 16:46:23
MichaV
Hi,
Wenn Du nur die Summen (oder Mittelwerte) brauchst, dann geht es auch ohne das Anlegen von 365 Blättern. Du müsstes dann allerdings vor dem Einlesen wissen, aus welchen Zellen Du die Summen brauchst.
Einfacher umzusetzen ist natürlich die 1. Variante, die 2. ist aber reizvoller ;o)
Konkret helfen kann ich Dir erst ab 21:00 Uhr. Vielleicht ist es bis dann ja erledigt, wenn nicht, meld ich mich.
Gruss- Micha
Anzeige
AW: große Dateimenge zusammenfassen
19.05.2005 17:09:12
Oliver
Hallo Micha, hallo alle anderen.
leider brauche ich nicht nur die Summen und Mittelwerte einzelner Zellen, sondern manchmal den Inhalt, der bei allen gleich ist und manchen Zellen können auch leer bleiben. Das Ganze einmal zu definieren sollte nicht das Problem sein.
Also schreibt mir bitte weiter Vorschläge.
Danke im voraus.
Oliver
AW: große Dateimenge zusammenfassen
19.05.2005 21:16:28
MichaV
Hallo,
hier eine mögliche Lösung für die erste Variante.
Mit Alt+F11 den VBA- Editor öffnen, dort Menü- Einfügen- Modul. Im sich dann öffnenden Codefenster diesen Code reinkopieren. Oben den Pfad zu Deinen Dateien und ggf. das Trennzeichen anpassen!
Dann zurück zu Excel, speichern, Alt+F8 und Makro ausführen.
Good Luck! Mit 360 Dateien hab ich es natürlich nicht probiert ;o) Aber die Anzahl der Blätter ist nur durch den Arbeitsspeicher begrenzt... Notfalls kannst Du alle 10 neu angelegte Blätter zwischenspeichern lassen.


      
Option Explicit
Public Sub TextImport()
Dim Datei
Dim DateiName As String
Dim Speichern As Boolean
Dim i As Long
'Pfad anpassen! Ohne Backslash am Ende!
Const Pfad = "D:\Pfad\zu\Deinen\CSV\Dateien"
'Trennzeichen anpassen!  (Tabulator: Delimiter=vbTab)
Const Delimiter = ";"
With Application.FileSearch 'Dateien suchen
    .LookIn = Pfad
    .Filename = "*.csv" 
'nur CSV- Dateien
    .Execute
End With
'hier ggf. die Abfragen rausnehmen, wenns zu sehr stört
If Application.FileSearch.FoundFiles.Count = 0 Then MsgBox "Keine Dateien gefunden.", vbInformation Or vbOKOnly, "Pfad richtig?": Exit Sub
If MsgBox(Application.FileSearch.FoundFiles.Count & " Dateien zu importieren. Fortfahren?", vbQuestion Or vbYesNo, "Frage") = vbNo Then Exit Sub
If MsgBox("Soll nach jeweils 10 Dateien gespeichert werden?", vbQuestion Or vbYesNo) = vbYes Then Speichern = True
On Error GoTo Fehler
Application.ScreenUpdating = 
False
For Each Datei In Application.FileSearch.FoundFiles
  i = i + 1
  
'Namen des Blattes aus Dateinamen erstellen
  'aus "c:\Ordner\Datei.csv" wird "Datei"
  DateiName = Mid(Datei, InStrRev(Datei, "\") + 1, Len(Mid(Datei, InStrRev(Datei, "\"))) - 5)
  
If Len(DateiName) > 31 Then
    
'Länger als 31 Zeichen darf er nicht sein
    DateiName = Left(DateiName, 31 - Len("_" & CStr(i))) & "_" & CStr(i)
  
End If
  ActiveWorkbook.Worksheets.Add.Name = DateiName
  
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Datei, Destination:=Range("A1"))
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileOtherDelimiter = Delimiter
    .Refresh 
'Abfrage ausführen
    .Delete  'und gleich wieder löschen
  End With
  
If Speichern And (i \ 10 = i / 10) Then 'alle 10 Blätter speichern
    ActiveWorkbook.Save
    DoEvents
  
End If
Next
Application.ScreenUpdating = 
True
Exit Sub
Fehler:
Application.ScreenUpdating = 
True
MsgBox "Fehler " & Err.Number & " :" & Err.Description, vbCritical 
Or vbOKOnly, "Mist!"
End Sub 

     Code eingefügt mit Syntaxhighlighter 3.0

PS: Rückmeldung wäre nett.
Anzeige
AW: große Dateimenge zusammenfassen
20.05.2005 00:52:08
Oliver
Hallo Micha,
leider war ich heute Abend unterwegs und möchte auch jetzt den Code nicht mehr testen. Aber bereits schon einmal einen recht herzlichen Dank im voraus. Ich finde es klasse, wie Du Dich mit meinem Problem auseinadergesetzt hast und auch die Zeit dafür eingesetzt hast.
Ich poste morgen (heute) aber auf jeden Fall noch, ob es funktioniert. Sinn meiner Anfrage soll für mich auch u.a. sein, dass ich den Code verstehe, daraus lerne und zukünftig selbst solche Probleme für mich oder andere lösen kann.
Besten Dank noch einmal.
Gruß OLiver
AW: große Dateimenge zusammenfassen
20.05.2005 08:39:57
Oliver
Hallo Micha,
leider war ich heute Abend unterwegs und möchte auch jetzt den Code nicht mehr testen. Aber bereits schon einmal einen recht herzlichen Dank im voraus. Ich finde es klasse, wie Du Dich mit meinem Problem auseinadergesetzt hast und auch die Zeit dafür eingesetzt hast.
Ich poste morgen (heute) aber auf jeden Fall noch, ob es funktioniert. Sinn meiner Anfrage soll für mich auch u.a. sein, dass ich den Code verstehe, daraus lerne und zukünftig selbst solche Probleme für mich oder andere lösen kann.
Besten Dank noch einmal.
Gruß OLiver
Anzeige
AW: große Dateimenge zusammenfassen
20.05.2005 08:40:02
Oliver
Hallo Micha,
leider war ich heute Abend unterwegs und möchte auch jetzt den Code nicht mehr testen. Aber bereits schon einmal einen recht herzlichen Dank im voraus. Ich finde es klasse, wie Du Dich mit meinem Problem auseinadergesetzt hast und auch die Zeit dafür eingesetzt hast.
Ich poste morgen (heute) aber auf jeden Fall noch, ob es funktioniert. Sinn meiner Anfrage soll für mich auch u.a. sein, dass ich den Code verstehe, daraus lerne und zukünftig selbst solche Probleme für mich oder andere lösen kann.
Besten Dank noch einmal.
Gruß OLiver
AW: große Dateimenge zusammenfassen
20.05.2005 10:05:10
MichaV
Hallo Oliver,
Deine Nachricht ist angekommen ;o)
Gruss- Micha
Anzeige
AW: große Dateimenge zusammenfassen
20.05.2005 11:31:24
Oliver
Hallo Micha,
es funktioniert alles fabelhaft. Da ich die erste Spalte als Text formatiert benötige, habe ich ein Makro aufgezeichnet, in dem ich nur eine csv-Datei importiere. Darauf konnte ich mir folgenden Code entnehmen, den ich vor Deine Zeile ".Refresh 'Abfrage ausführen" gesetzt habe.
.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 _
, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)

Funktioniert auch. Im Moment lasse ich mir mit der externen Software die 365 Dateien erstellen. Bisher hatte ich zum Test blos immer nur ca. fünf. Ich hoffe mal, das klappt dann später mit dem Arbeitsspeicher.
Aber noch einmal: Vielen, vielen Dank.
Sollte es später noch Schwierigkeiten geben, dann poste ich noch mal.
Gruß Oliver
Anzeige
AW: große Dateimenge zusammenfassen
20.05.2005 19:11:47
MichaV
Hallo Oliver,
Super! Du weißt Dir zu helfen.
Da ich Deine csv nicht hatte, konnt ich Dir da nix vorgeben.
Viel Glück mit Deiner Datenmenge! Ich hatte 17 zum testen, das ging auch noch ;o)
Gruß- Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige