Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Erstellung csv-Datei über ein Makro
#1
HHallo,

der Inhalt eines Arbeitsblatts soll über ein Makro exportiert und in eine neue Datei übertragen werden, die im CSV-Format benötigt wird.

Nachfolgend der mit dem Makrorekorder aufgezeichnete VBA-Code:

Sub CSV_Beleg(
'
' CSV_Beleg Makro
'
    Sheets("Beleg").Select
    Sheets("Beleg").Copy
    Application.WindowState = xlNormal
    ActiveWorkbook.BreakLink Name:= _
        "S:\...\Quelldatei.xlsm" _
        , Type:=xlExcelLinks
    ChDir "V:\....\....\....\....\EXPORT"
    ActiveWorkbook.SaveAs Filename:= _
        "V:\….\....\...\CSV_Datei.csv" _
        , FileFormat:=xlCSV, CreateBackup:=False
    ActiveWindow.Close
End Sub

In der CSV-Datei wird der Dateninhalt wie gewünscht angezeigt.

Lasse ich die CSV-Datei dagegen über das Makro erstellen, werden die gewünschten Daten zwar in die neue Datei übertragen. Aber gesamte Inhalt einer Zeile wird in die Spalte A eingefügt. Dabei ist der Inhalt der einzelnen Zelle jeweils durch ein Komma getrennt.

Was muss ich ändern, dass die Daten in der gleichen Struktur eingefügt werden wie in der Quelldatei (d.h. Verteilung der Daten auf mehrere Spalten)?

Viiee Grüße
Versuchnix
Antworten Top
#2
Hallo,

eine csv-Datei ist eine reine Textdatei. Da gibt es keine Spalten!
Wenn du des Ergebnis überprüfen willst, dann musst du die csv-Datei mit einem Editor öffnen! Zur Not tut es auch der Luxus-Editor "Word".

Gruß Sigi
Antworten Top
#3
Zitat:Dabei ist der Inhalt der einzelnen Zelle jeweils durch ein Komma getrennt.


Dann passt es doch.  csv = comma separated values

Wenn es in eine neue Excel-Datei soll, dann Importieren und nicht Einfügen oder mit Excel öffnen.
Cadmus
Antworten Top
#4
Hallo Versuchnix,

evtl. willst du eine csv-Datei mit einem Semikolon als Feldtrennzeichen erstellen?
Dann musst du (bei dt. Excelversion) den Parameter " local:=true " ergänzen, damit VBA erkennt, dass du das dt. Trennzeichen willst (denn VBA spricht ja englisch).

Gruß Sigi
Antworten Top
#5
Photo 
Hallo,

die bisherigen Antworten helfen mir leider nicht weiter.

Warum gibt es bei csv-Dateien keine Spalten?

Die csv-Datei trägt die Spaltenüberschriften A, B, C ...

Beigefügt zwei Beispieldateien. Vielleicht wird mein Problem dann klarer.


.pdf   CSV-Datei.pdf (Größe: 53,17 KB / Downloads: 9)

Viele Grüße Versuchnix
Antworten Top
#6
Hi,

nochmal zum Nachlesen:


Zitat:eine csv-Datei ist eine reine Textdatei. Da gibt es keine Spalten!





Zitat:
Zitat: schrieb:Dabei ist der Inhalt der einzelnen Zelle jeweils durch ein Komma getrennt.


Dann passt es doch.  csv = comma separated values
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#7
Hola,

Zitat:Warum gibt es bei csv-Dateien keine Spalten?


Steht doch schon hier, es ist eine reine TEXT Datei.
Die csv-Datei trägt die Spaltenüberschriften A, B, C ...
Das ist das, was Excel daraus macht. Man importiert eine csv-Datei in Excel (nicht per Doppeklick öffnen). Als Trennzeichen gibst du das Komma an, fertig. Dann steht auch alles schön in Spalten.
Öffnest du das per Doppelklick, erwartet Excel standardmäßig ein Semikolon als Trenner. Hast aber aber nicht, daher wird alles in eine Zelle geschrieben.

Steht aber auch alles schon hier.
Gruß,
steve1da
Antworten Top
#8
Hallo Versuchnix,

warum verwendest du nicht einfach das Semikolon als Feldtrennzeichen? Wie ich schon sagte, durch Ergänzung des Parameters local:=true.

Bsp.:  ActiveWorkbook.SaveAs Filename:= _
        "V:\….\....\...\CSV_Datei.csv" _
        , FileFormat:=xlCSV, CreateBackup:=False, local:=true


Gruß Sigi
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste