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

csv dateien; speichern als .xls

csv dateien; speichern als .xls
16.06.2004 08:23:04
franz
Guten Morgen !
Nochmals Danke an Veit zu meinem Threat vom 16.6. (hat nach ein
paar Umstellungen alles geklappt).
Eine neue Frage:
Ich habe in einem Verzeichnis c:\ mehrere csv-Dateien.
Wie ginge es über VBA, diese csv-Dateien automatisch
über Excel zu öffnen und ohne Nachfrage in das Dateiformat
"xls" zu speichern. Der Dateinamen sollte erhalten bleiben.
Die geöffneten Dateien müssten gleich wieder geschlossen werden.
Es geht letztlich darum, diese csv-Dateien als xls-Datein umzuwandeln.
Gruss
Franz

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: csv dateien; speichern als .xls
Oberschlumpf
Hallo Franz
Versuch es mal so.


Sub csvToXls()
 
    Dim lstrCSV_Datei As String
    
    lstrCSV_Datei = Dir("C:\*.CSV")
    
    Do Until lstrCSV_Datei = ""
    
'------ schnipp -----------
'diesen Code musst Du durch den eigenen ersetzen, da jede CSV-Datei andere Parameter benötigt
'(hängt ab von Anzahl der Spalten, verwendetes Trennzeichen usw
        Workbooks.OpenText Filename:= _
            "c:\" & lstrCSV_Datei, _
            Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
            , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
            Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
            Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
'------ schnapp ------------
        Workbooks(2).SaveAs Filename:="c:\" & Left(Workbooks(2).Name, Len(Workbooks(2).Name) - 4) & ".xls", FileFormat:=xlNormal
        Workbooks(2).Close savechanges:=False
        lstrCSV_Datei = Dir
    Loop
End Sub


Mit diesem Bsp-Code wird zuerst der Variablen lstrCSV_Datei die erste CSV-Datei aus C:\ übergeben.
Diese wird dann in der Do-Loop-Schleife geöffnet, ins XLS-Format konvertiert, unter dem gleichen Namen, wie die CSV-Datei, aber mit der Endung XLS in C:\ gespeichert und wieder geschlossen.
Dann wird mit der Zeile
lstrCSV_Datei = Dir
die nächste CSV-Datei an die Variable übergeben und alles beginnt von vorn.
Diese Schritte werden so lange wiederholt, bis die Variable lstrCSV_Datei einen "Leerstring" zurückliefert; es gibt keine weiteren CSV-Dateien.
Hier noch mal der Hinweis, dass Du den VBA-Code zwischen den Zeilen
Schnipp & Schnapp
durch Deinen eigenen Code ersetzen musst, da ich ja zum Testen andere CSV-Dateien verwendet habe.
Um den VBA-Code für das Öffnen und Anpassen von CSV-Dateien zu erhalten, verwende beim manuellen Öffnen einer CSV-Datei einfach den Makro-Recorder.
Voraussetzung für mein Bsp ist natürlich, dass alle CSV-Dateien den gleichen Aufbau haben.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: csv dateien; speichern als .xls
16.06.2004 11:52:18
franz
Hallo Thorsten !
Vielen Dank für das Makro und die
ausführliche Beschreiben.
Immer wieder toll, wie Ihr Euch für uns mehr
oder weniger "Laien" einsetzt.
Einen schönen Gruß aus Frankfurt (M).
Franz
AW: csv dateien; speichern als .xls
16.06.2004 12:51:22
franz
Hallo Thorsten,
jetzt habe ich das Makro wie folgt angepaßt.

Sub csvzuxls()
Dim lstrCSV_Datei As String
ChDrive ("R:\")
ChDir ("R:\entladeprotokolle\Neue_Produktionsdatenbank\GSR 10\2004\")
lstrCSV_Datei = Dir("R:\entladeprotokolle\Neue_Produktionsdatenbank\GSR 10\2004\*.CSV")
Do Until lstrCSV_Datei = ""
'------ schnipp -----------
'diesen Code musst Du durch den eigenen ersetzen, da jede CSV-Datei andere Parameter benötigt
'(hängt ab von Anzahl der Spalten, verwendetes Trennzeichen usw
Workbooks.OpenText Filename:= _
"R:\entladeprotokolle\Neue_Produktionsdatenbank\GSR 10\2004\" & lstrCSV_Datei, _
Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1))
'------ schnapp ------------
Workbooks(2).SaveAs Filename:="R:\entladeprotokolle\Neue_Produktionsdatenbank\GSR 10\2004\" & Left(Workbooks(2).Name, Len(Workbooks(2).Name) - 4) & ".xls", FileFormat:=xlNormal
Workbooks(2).Close savechanges:=False
lstrCSV_Datei = Dir
Loop
End Sub

Bekomme aber die Fehlermeldung:
Laufzeitfehler '1004':
Die Methode 'OpenText' für das Objekt 'Workbooks'
ist fehlgeschlagen.
Kannst Du was damit anfangen ?
Gruss
franz
Anzeige
AW: csv dateien; speichern als .xls
Oberschlumpf
Hallo Franz
Verfolge den Codeablauf doch mal im VBA-Editor mit der Einzelschritt-Taste F8 und schau Dir den Inhalt der Variablen an.
Und noch ein Tipp oder eher Frage.
Hast Du den Code zum Öffnen einer CSV-Datei selbst mit dem Makro-Rekorder aufgezeichnet oder hast Du meinen Code übernommen? (mein Bsp und Dein Code sehen ziemlich ähnlich aus)
Wenn Du weiterhin Probleme hast, kannst Du Deine Datei ja mal auf den Server speichern.
Ciao
Thorsten

231 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige