Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen

Code erzeugt unbrauchbare CSV-Datei

Betrifft: Code erzeugt unbrauchbare CSV-Datei von: stormlamp
Geschrieben am: 07.10.2014 18:56:33

Hallo Zusammen,

vor ein paar Tagen wurde mir hier geholfen mit einem Code, der ein Tabellenblatt in einer neuen Mappe erzeugt und diese neue Mappe dann unter einem ganz bestimmten Namen im gleichen Verzeichnis abspeichert, wie die Ursprungsdatei aber im CSV-Format.

Das funktioniert auch, aber wenn ich dann diese CSV-Datei öffne mit Excel, dann werden die Felder nicht kommasepariert in Spalten verteilt sondern der gesamte Inhalt einer Zeile mitsamt den Kommata steht jeweils in der Zelle der Spalte A.

Also steht dann bspw. in Zelle A6 "4711,10,,13,0,0,0,8,7,8,0,0,,0,0"

Kann mir bitte jemand helfen, den Fehler zu beseitigen. Hier der Code:

Dim wkb As Workbook
Dim wks As Worksheet
Dim strpath As String
Dim strDatei As String
Dim strdefault  As String
Dim strName As String

    Set wkb = ThisWorkbook
    Set wks = wkb.Sheets("Tabelle1")
    strpath = wkb.Path
    strdefault = Mid(wks.Cells(2, 1).Value, 2, 2) 'Teilstring der Zelle A2 als Vorgabewert
    strName = InputBox("Bitte geben Sie den Benutzer ein: ", "Eingabe", Default:=strdefault)
    strDatei = strpath & "\Benutzer_" & strName & "_" & Year(Now) & "_" & Month(Now) & "_" & _
Day(Now) & "_" & Hour(Now) & "_" & Minute(Now) & ".csv"
    
    wks.Copy
    ActiveWorkbook.SaveAs Filename:=strDatei, FileFormat:=xlCSV, CreateBackup:=False

  

Betrifft: AW: Code erzeugt unbrauchbare CSV-Datei von: Daniel
Geschrieben am: 07.10.2014 20:01:55

Hi

Excel spricht landessprache (also hier deutsch)
VBA spricht meistens englisch.

wenn du per Makro eine CSV-Datei erstellst, wird diese im Regelfall im englischen CSV-Format gespeichert, dh das Spaltentrennzeichen ist das Komma.
Wenn du diese Datei dann mit einem deutschen Excel von Hand öffnest, richtet sich Excel nach dem deutschen CSV-Format mit dem Semikolon als Trennzeichen.

um beim SpeichernUnter per Makro ein deutsches CSV zu erhalten (bzw ein "landestypisches") dann muss man das beim Speichern explizit angeben:

ActiveWorkbook.SaveAs Filename:=strDatei, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
Gruß Daniel


  

Betrifft: Gelöst: Code erzeugt unbrauchbare CSV-Datei von: stormlamp
Geschrieben am: 08.10.2014 07:39:39

Hallo Daniel,

vielen Dank, genau das war es. Nachdem ich noch "Local:=True" eingefügt habe, werden die CSV-Dateien richtig erzeugt.

Gruß
Hans


  

Betrifft: AW: Code erzeugt unbrauchbare CSV-Datei von: Oberschlumpf
Geschrieben am: 07.10.2014 20:02:46

Hi ???

Wie öffnest du denn die csv-Datei?
Tust du das, in dem du zuerst Excel startest, und dann über Datei öffnen, csv als Dateityp auswählst, und dann den Anweisungen des Assistenten folgst?

Wenn du es genau so tust, dann zeig uns bitte mal die csv-Datei.
Datei bitte Uploaden und nicht nur den Inhalt hier posten.

Ciao
Thorsten


 

Beiträge aus den Excel-Beispielen zum Thema "Code erzeugt unbrauchbare CSV-Datei"