Microsoft Excel

Herbers Excel/VBA-Archiv

CSV-Dateien erstellen - Formatierungsproblem | Herbers Excel-Forum


Betrifft: CSV-Dateien erstellen - Formatierungsproblem von: pbaer007
Geschrieben am: 23.07.2012 23:49:51

Hallo an Alle VBA-Profis,

ich möchte bestehende CSV-Dateien bearbeiten.
Hierzu gibt es ein Macro, welches aus einer Liste die entsprechenden Dateien aufruft, sie bearbeitet und dann mit neuem Namen wieder abspeichert. Der Aufbau der zu bearbeitenden Dateien und somit die Felder sind jeweils unterschiedlich.

(Ich hatte am 21.07.2012 schon einmal gepostet und gedacht,
ich hätte die Lösung gefunden - LEIDER NICHT!)

Soweit ich das manuell mit "File save as: CSV(Comma delimited)" mache, funktioniert es.
Damit erhalte ich Dateien, die später weiter genutzt werden können.

Ich habe auch zur Kontrolle den Speichervorgnag mit dem Macro-Recorder aufgezeichnet.

Lass ich nun diese Schritte mit dem Makro ausführen, werden bei der neuen Datei jeweils Anführungszeichen am Anfang und am Ende eines Textfeldes hinzugefügt,
was eine spätere Verwendung unmöglich macht.
Hier die entsprechende Stellen aus dem Macro:

Sub mkrErstelle_CSVDatei_2()
    
    For w = 1 To 10
        varOpenBezug = Workbooks.Open(varUrsprung & Workbooks("Export_Datei"). _
                                    Worksheets("Sheet2").Cells(4 + w, 2))
        Set wb = Workbooks.Open(varOpenBezug)
'diverse Arbeitsschritte
         ActiveWorkbook.SaveAs Filename:=varZielPfad & varName, FileFormat:=xlCSV, _
                                     Local:=True
    Next w

End Sub
Was mache ich falsch?
Ich habe in der ZIP-Datei mit drei Files (Original, manuelle Speicherung und Macro) als Beispiel hochgeladen.

https://www.herber.de/bbs/user/81138.zip

Ich würde mich sehr freuen,
wenn es jemand gibt, der mich von diesem Problem erlösen kann.

;-)

Vielen Dank & viele Grüße
Gert

  

Betrifft: AW: CSV-Dateien erstellen - Formatierungsproblem von: fcs
Geschrieben am: 24.07.2012 01:04:08

Hallo Gert,

versuche mal auch beim Öffnen der CSV-Dateien mit dem Parameter Local:=True zu arbeiten. Wahrscheinlich entstehen da schon die Probleme, dass deine Daten anschliessend nicht korrekt gespeichert werden.


Gruß
Franz

Sub mkrErstelle_CSVDatei_2()
    
    For w = 1 To 10
        varOpenBezug = Workbooks.Open(varUrsprung & Workbooks("Export_Datei"). _
                                    Worksheets("Sheet2").Cells(4 + w, 2))
        Set wb = Workbooks.Open(varOpenBezug, Local:=True)
'diverse Arbeitsschritte
         ActiveWorkbook.SaveAs Filename:=varZielPfad & varName, FileFormat:=xlCSV, _
                                     Local:=True
    Next w

End Sub



  

Betrifft: AW: CSV-Dateien erstellen - Formatierungsproblem von: pbaer007
Geschrieben am: 24.07.2012 09:23:31

Hallo Franz,

VIELEN DANK FÜR DEN HINWEIS.

Ja da hast Du recht, es lag wirklich beim Öffnen.

Die entsprechende Zeile zum öffnen der Dateien, wie nachfolgend geändert:

Workbooks.Open (varUrsprung & Workbooks("Export_Datei").Worksheets("Sheet2").Cells(4 + w, 2)) _
                             , , , 4, , , , , ";", , , , , Local:=True
Nun sieht es schon um einiges Besser aus.

Jetzt werden aber beim Abspeichern die Felder mit Komma unterteilt.
Kann für die "SaveAs"-Function in der Hilfe nicht erkennen, wie ich das steuern kann.
ActiveWorkbook.SaveAs Filename:=varZielPfad & varName, FileFormat:=xlCSV, Local:=True
Kannst Du mir da auch noch einen Tip geben?
Viele Grüße
Gert


  

Betrifft: AW: CSV-Dateien erstellen - Formatierungsproblem von: fcs
Geschrieben am: 24.07.2012 22:55:06

Hallo Gert,

ich hab jetzt ein wenig mit deinem Code probiert den Fehler zu finden.

Bei mir unter Windows Vista, Office 2010, alles Deutsch eingestellt. Also mit Komma als Dezimal- und Punkt als 1000er-Trennzeichen.

Da werden die Daten deiner Test-CSV-Original-Datei ordentlich geöffnet und in Spalten angezeigt.

Die CSV wird auch mit Semikolon als Trennzeichen gespeichert. Es fehlen aber die in der Original-CSV vorhandenen Anführungszeichen vor und nach Texten. Diese läßt Excel weg, solange im Text der Zellen keine Trennzeichen oder Anführungsstriche vorkommen.

Kommas als Trennzeichen konnte ich in der CSV nur erzeugen, indem ich im Makro die Einstellungen für Dezimal- bzw. 1000er-Trennzeichen änderte z.B. in die US-Einstellungen.

Falls du so etwas im Code gemacht hast, dann muss du vor dem Speichern der CSV-Datei diese Einstellungen wieder auf die deutschen Werte zurücksetzen.

Gruß
Franz


  

Betrifft: AW: CSV-Dateien erstellen - Formatierungsproblem von: pbaer007
Geschrieben am: 25.07.2012 08:51:38

Hallo Franz,

vielen Dank für die Anstrengungen, mein Problem zu lösen.

Leider habe ich überhaupt keine Ahnung, wie ich die Einstellungen verändere, die Du ansprichst.
Aus diesem Grund nehme ich auch keine Änderungen durch den Code vor.
Wo könnte ich dies denn prüfen oder (wie) ändern?

Sorry
Gert


  

Betrifft: AW: CSV-Dateien erstellen - Formatierungsproblem von: fcs
Geschrieben am: 25.07.2012 12:24:18

Hallo Gert,

die Basis-Einstellungen werden in der Systemsteuerung und Region/Spracheinstellungen gemacht.

In Excel kann man unter Optionen die Übernahme der Einstellungen von der Systemsteuerung deaktivieren und individuelle Einstellungen machen für Dezimal und Trennzeichen.

Da VBA US-lastig ist, kann man mit dem Parameter Local=True dafür sorgen, dass die eigenen Einstellungen beim Import von CSV-Dateien verwendet werden.

Was mich jetzt bei dir wundert ist, dass der Import der CSV-Daten funktioniert, aber beim erneuten Speichern dann plötzlich die Komma als Trennzeichen auftauchen. Da bin ich jetzt echt ratlos.

CSV-Dateien haben in Excel leider ein gewisses Eigenleben bezüglich öffnen/Speichern, dass man nur über den Parametr Local etwas steuern kann. Deswegen bin ich auch schon den Weg gegangen und hab die CSV temporär als TXT kopiert und dann als Textdatei mit entsprechenden Parametern geöffnet ,bearbeitet und wieder gespeichert und dann die TXT in CSV umbenannt. Ich kann aber nicht abschätzen, ob dies für dich eine Option sein kann.

Gruß
Franz


  

Betrifft: AW: CSV-Dateien erstellen - Formatierungsproblem von: pbaer007
Geschrieben am: 26.07.2012 17:42:20

Hallo Franz,

vielen Dank für deinen Input.
Das hin und her speichern mit umbenennen ist nicht wirklich eine Option.

Ich hab jetz auch versucht, die CSV Datei zu öffnen, zu bearbeiten und dann eine neue Datei zu beschreiben (print #1) und anschließend zu speichern.

Ich dachte nicht, dass es so "un-einfach" ist, diesem Problem bei zu kommen. Aus diesem Grund habe ich es erst einmal hinten angestellt und versuche zu einem späteren Zeitpunkt noch einmal der Sache ein Ende zu bereiten.

Nochmals vielen Dank & bis dahin....
sommerliche Grüße
Gert


Beiträge aus den Excel-Beispielen zum Thema "CSV-Dateien erstellen - Formatierungsproblem"