Hallo Community,
folgende Situation: Via HTML-Suchformular werden die Daten von einen Scanserver als CSV Dateien abgespeichert. Die CSV Dateien liegen alle im selben Ordner (Die erste Zeile sind immer Überschriften. Trennzeichen sind Semikolons.). Bisher wird der Inhalt mittels markieren, kopieren und einfügen in eine große Excel Datei gespeichert und gefiltert (Datum nach Alter aufsteigend; Uhrzeit nach Größe absteigend) und Duplikate gelöscht. Die Datei hat am Ende meist über 30.000 Zeilen und ist über 9 MB groß. Auf diese Excel Datei wird später via SVERWEIS der Inhalt abgerufen.
Ziel: Die einzelnen CSV Dateien in einen Excel-Arbeitsblatt zusammenführen.
Optional: Das einbinden der Filter und löschen von Duplikaten (Spalte 1: PSN)
Wunschdenken: Das abrufen der Daten vom Scanserver automatisieren und zur Weiterverarbeitung an Excel übergeben.
Bisher versucht:
Die CSV Dateien wurden mit Excel' "Power Query" zusammengeführt und verarbeitet. Leider war die erstellte Tabelle daraus nicht via SVERWEIS zu verwenden. Ganz egal ob man die Daten unformatiert in Excel lud oder Daturm, Uhrzeit mäßig formatierte. Auch kommt es vor ,das im Scanserver fehlerhafte Handerfassungen drin sind. So steht dann einfach mal bei Uhrzeit eine PLZ drin, was dann zu Fehlermeldungen führte
Zusammenführen der CSV via Batch. Dafür sind es zu viele Zeilen. Das erstellen schlug nach ca 51% fehl.
Bisher erreicht: Die einzelnen CSV-Dateien werden jeweils in ein Blatt in einer Arbeitsmappe gespeichert. Das ist das Skript:
So sieht eine gefilterte und von Duplikaten befreite Arbeitsmappe aus:
Die "Hyroglyphen" in Spalte A (PSN) sind nicht störend. Die Nummern die dahinter stecken, sind immer 14 stellig. Fangen aber sehr oft mit einer 0 an. In der Bearbeitungsleiste steht zwar nur eine 13 stellige Zahl, doch es sind 14 Ziffern. Damit hatte Power Query auch Probleme. So waren die Hyroglyphen der tatsächliche Zeileninhalt.
Kann mir einer bei den Skript helfen? Mir raucht ein wenig der Kopf von Excel und co.
Vielen lieben Dank schon mal vor ab.
folgende Situation: Via HTML-Suchformular werden die Daten von einen Scanserver als CSV Dateien abgespeichert. Die CSV Dateien liegen alle im selben Ordner (Die erste Zeile sind immer Überschriften. Trennzeichen sind Semikolons.). Bisher wird der Inhalt mittels markieren, kopieren und einfügen in eine große Excel Datei gespeichert und gefiltert (Datum nach Alter aufsteigend; Uhrzeit nach Größe absteigend) und Duplikate gelöscht. Die Datei hat am Ende meist über 30.000 Zeilen und ist über 9 MB groß. Auf diese Excel Datei wird später via SVERWEIS der Inhalt abgerufen.
Ziel: Die einzelnen CSV Dateien in einen Excel-Arbeitsblatt zusammenführen.
Optional: Das einbinden der Filter und löschen von Duplikaten (Spalte 1: PSN)
Wunschdenken: Das abrufen der Daten vom Scanserver automatisieren und zur Weiterverarbeitung an Excel übergeben.
Bisher versucht:
Die CSV Dateien wurden mit Excel' "Power Query" zusammengeführt und verarbeitet. Leider war die erstellte Tabelle daraus nicht via SVERWEIS zu verwenden. Ganz egal ob man die Daten unformatiert in Excel lud oder Daturm, Uhrzeit mäßig formatierte. Auch kommt es vor ,das im Scanserver fehlerhafte Handerfassungen drin sind. So steht dann einfach mal bei Uhrzeit eine PLZ drin, was dann zu Fehlermeldungen führte
Zusammenführen der CSV via Batch. Dafür sind es zu viele Zeilen. Das erstellen schlug nach ca 51% fehl.
Bisher erreicht: Die einzelnen CSV-Dateien werden jeweils in ein Blatt in einer Arbeitsmappe gespeichert. Das ist das Skript:
Code:
Sub Einlesen()
Dim strPfad$, csvName$, sFile$, i%
strPfad = "C:\Excel Rohdaten"
csvName = Dir$(strPfad & "/*.csv", vbNormal)
Do Until LenB(csvName) = 0
i = i + 1
If i > Worksheets.Count Then Sheets.Add After:=Sheets(i - 1)
With Sheets(i)
.Activate
sFile = strPfad & "\" & csvName
.Name = Left(csvName, Len(csvName) - 4)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & sFile, Destination:=.Range("A1"))
.Name = csvName
.FieldNames = True
.AdjustColumnWidth = True
.TextFileParseType = xlDelimited
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = ""
.Refresh BackgroundQuery:=False
End With
End With
csvName = Dir$
Loop
End Sub
So sieht eine gefilterte und von Duplikaten befreite Arbeitsmappe aus:
Die "Hyroglyphen" in Spalte A (PSN) sind nicht störend. Die Nummern die dahinter stecken, sind immer 14 stellig. Fangen aber sehr oft mit einer 0 an. In der Bearbeitungsleiste steht zwar nur eine 13 stellige Zahl, doch es sind 14 Ziffern. Damit hatte Power Query auch Probleme. So waren die Hyroglyphen der tatsächliche Zeileninhalt.
Kann mir einer bei den Skript helfen? Mir raucht ein wenig der Kopf von Excel und co.
Vielen lieben Dank schon mal vor ab.
Zuletzt bearbeitet:
(Lesbarkeit)