Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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
CSV in XLS Konvertieren
22.12.2013 12:19:55
Pere
Ups, ich hatte vergessen einen Aussagekräftigen Titel einzugeben. Sorry.
Hallo,
ist es möglich, das unten stehen Makro so zu modifizieren, dass auswählbar ist, welches Trennzeichen für die Konvertierung von CSV zu XLS genommen wird (Komma, Semikolon, etc.)? Aktuell sind die CSV Dateien mit einem Semikolon getrennt. Das Makro erkennt dies anscheinend automatisch. Ich möchte aber explizit angeben können, was als Trennzeichen verwendet wird.
Viele Grüße
Pere
Sub CSVXLS()
Dim wb As Workbook
Dim strFile As String, strDir As String
strDir = "C:\test\"
strFile = Dir(strDir & "*.csv")
Do While strFile  ""
Set wb = Workbooks.Open(Filename:=strDir & strFile, Local:=True)
wb.SaveAs Replace(wb.FullName, ".csv", ".xlsx"), 51
wb.Close True
Set wb = Nothing
strFile = Dir
Loop
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV in XLS Konvertieren
26.12.2013 19:55:08
fcs
Hallo Pere,
bei der Dateierweiterung CSV hast du keine Einstellmöglichkeiten für das Trennzeichen außer dass du den Paramter "Local" auf True (dann lokale Einstelungen aus der Systemsteuerung, deutsch z.B. Semikolon als Trennzeichen, Komma als Dezimaltrennzeichen) oder False (dann US-Einstellungen mit Komma als Trennzeichen und Punkt als Dezimalzeichen).
Wenn du das Trennzeichen variabel setzen möchtest, dann musst du deine CSV-Dateien in TXT-Dateien umbenennen/kopieren.
Nachfolgend dein Makro entsprechend erweitert und angepasst.
Weitere Infos zu OpenText findest du in der VBA-Hilfe.
Gruß
Franz
Sub CSVXLS_variabel()
Dim wb As Workbook
Dim strFile As String, strDir As String, strTXT_File As String
Dim bolTab As Boolean, bolSemicolon As Boolean, bolComma As Boolean, _
bolSpace As Boolean, bolOther As Boolean, strOther As String, strSep As String
strSep = InputBox("Bitte Trennzeichen eingeben (Für Tabulator: vbTab)", _
"Trennzeichen für CSV-Import", Default:="vbTab")
Select Case strSep
Case "" 'Abbruch
Exit Sub
Case "vbTab": bolTab = True
Case ";": bolSemicolon = True
Case ",": bolComma = True
Case " ": bolSpace = True
Case Else
bolOther = True
strOther = Left(strSep, 1)
End Select
strDir = "C:\test\"
strFile = Dir(strDir & "*.csv")
Do While strFile  ""
strTXT_File = strDir & strFile
strTXT_File = Replace(strTXT_File, ".csv", ".txt")
'CSV-Datei kopieren und in TXT umbenennen
VBA.FileCopy Source:=strDir & strFile, Destination:=strTXT_File
Workbooks.OpenText Filename:=strTXT_File, Tab:=bolTab, _
semicolon:=bolSemicolon, comma:=bolComma, Space:=bolSpace, _
other:=bolOther, otherChar:=strOther, Local:=True
Set wb = ActiveWorkbook
wb.SaveAs Replace(wb.FullName, ".txt", ".xlsx"), 51
wb.Close True
Set wb = Nothing
'TXT-Datei wieder löschen
Kill strTXT_File
strFile = Dir
Loop
End Sub

Anzeige
AW: CSV in XLS Konvertieren
26.12.2013 21:44:41
Pere
Hallo Franz,
herzlichen Dank für das Anpassen des Makros. Leider funktioniert es bei mir aber bei einer CSV-Datei mit ; als Trennzeichen nicht. Ich habe Dir die Datei angehängt. Sie ist allerdings als TXT-Datei angehängt, da ich keine CSV-Dateien hochladen kann. Du musst Sie also noch in eine CSV-Datei umwandeln, bevor Du das Makro testest. Ich weiß nicht, warum es nicht funktioniert. Habe ich vielleicht etwas übersehen?
Viele Grüße
Pere
Hier die Datei
https://www.herber.de/bbs/user/88630.txt

AW: CSV in XLS Konvertieren
26.12.2013 21:45:29
Pere
Hallo Franz,
herzlichen Dank für das Anpassen des Makros. Leider funktioniert es bei mir aber bei einer CSV-Datei mit ; als Trennzeichen nicht. Ich habe Dir die Datei angehängt. Sie ist allerdings als TXT-Datei angehängt, da ich keine CSV-Dateien hochladen kann. Du musst Sie also noch in eine CSV-Datei umwandeln, bevor Du das Makro testest. Ich weiß nicht, warum es nicht funktioniert. Habe ich vielleicht etwas übersehen?
Viele Grüße
Pere
Hier die Datei
https://www.herber.de/bbs/user/88630.txt

Anzeige
AW: CSV in XLS Konvertieren
27.12.2013 09:27:50
fcs
Hallo Pere,
da hatte ich noch etwas übersehen.
Excel erkennt nicht immer automatisch, ob eine Text-Datei mit Trennzeichen oder festen Spaltenbreiten vorliegt. Deshalb muss beim Öffnen zusätzlich der Parameter DataType angegben werden.
Passe die folgende Zeile an.
    Workbooks.OpenText Filename:=strTXT_File, DataType:=xlDelimited, _
Tab:=bolTab, semicolon:=bolSemicolon, comma:=bolComma, Space:=bolSpace, _
other:=bolOther, otherChar:=strOther, Local:=True

Gruß
Franz

AW: CSV in XLS Konvertieren
27.12.2013 19:13:03
Pere
Super, funktioniert einwandfrei! Herzlichen Dank, Franz! Gruß Pere
Anzeige

287 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige