CSV nach XLS
29.01.2007 22:13:16
Jürgen
ich habe ein für mich sehr komplexes Problem zu lösen.
Im Verzeichnis G:\csv stehen x csv-Datei en mit identischem Aufbau.
Diese sollen nun in 1 xls-Datei mit allen Datensätzen zusammengefasst
werden und in G:\xls gespeichert werden. Mittels Hilfe aus dem Forum
habe ich nunmehr eine Teillösung realisiert, die die csv-Dateien in
einezelne xls-Dateien automatisiert umwandeln soll:
-------------------------------------------------------------------
Sub scanner()
Dim dName$
dName = "g:\csv\*.csv"
If Dir(dName) <> "" Then
umwandeln
Else
Application.Quit
End If
End
Sub
Sub umwandeln()
'einlesen der ermittelten csv datei
Dim DatVgl As Date
Dim Mappe As String
Dim ZMappe As String
Const m = "g:\csv"
Mappe = Dir(m & "\*.csv")
Do Until Mappe = ""
DatVgl = FileDateTime(m & "\" & Mappe)
Dat = DatVgl
ZMappe = m & "\" & Mappe
Mappe = Dir()
Loop
Application.Visible = False
Workbooks.Open Filename:=ZMappe
Application.Visible = False
'datei wird als kopie in unterordner verschoben
Dim s As String
Const Lw = "g:\"
Const Pfad = "g:\xls"
'Ermitteln des Dateinamens
s = ActiveWorkbook.Name
ChDrive Lw
ChDir Pfad
'Arbeitsmappe speichern
ActiveWorkbook.SaveAs Filename:=s, FileFormat:=xlExcel8, Password:="",
WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
'Zuvor bearbeitete Datei wird aus Hauptverzeichniss gelöscht
On Error GoTo ende:
ChDir "g:\csv"
Kill (s)
ende:
'erneutes starten des scanners
scanner
End
Sub
Die Quell-Dateien sehen wie folgt aus:
Quelle01.csv
Typ; Datum; Name; Rufnummer; Nebenstelle; Eigene Rufnummer; Dauer
1;31.12.06 17:04;;093485858686;Telefon;Festnetz;0:04
1;31.12.06 15:47;;unbekannt;Telefon;Festnetz;0:02
Quelle02.csv
Typ; Datum; Name; Rufnummer; Nebenstelle; Eigene Rufnummer; Dauer
1;02.08.06 20:01;;unbekannt;Telefon;Festnetz;0:01
1;02.08.06 18:14;;0699785433;Telefon;Festnetz;0:03
3;02.08.06 15:21;Meier R;2671;Telefon;Internet: 837677;0:05
Die Ziel-Datei sollte wie folgt aussehen:
Ziel.xls
Typ Datum Name Rufnummer Nebenstelle Eigene Rufnummer Dauer
1 31.12.2006 17:04 093485858686 Telefon Festnetz 00:04
1 31.12.2006 15:47 unbekannt Telefon Festnetz 00:02
1 30.12.2006 20:01 unbekannt Telefon Festnetz 00:01
1 30.12.2006 18:14 0699785433 Telefon Festnetz 00:03
3 30.12.2006 15:21 Meier R 2671 Telefon Internet: 837677 00:05
Das tatsächliche Ergebins ist jedoch:
Typ; Datum; Name; Rufnummer; Nebenstelle; Eigene Rufnummer; Dauer
1;31.12.06 17:04;;093485858686;Telefon;Festnetz;0:04
1;31.12.06 15:47;;unbekannt;Telefon;Festnetz;0:02
1;02.08.06 20:01;;unbekannt;Telefon;Festnetz;0:01
1;02.08.06 18:14;;0699785433;Telefon;Festnetz;0:03
3;02.08.06 15:21;Meier R;2671;Telefon;Internet: 837677;0:05
Was mache ich falsch ?
mfg
Jürgen