Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Code für speichern einer csv Datei

VBA Code für speichern einer csv Datei
10.04.2014 11:39:47
Andreas
Hallo Zusammen,
ich möchte aus einem Excel sheet bestimmte inhalte kopieren und als csv Datei speichern...das habe ich mit folgendem code auch geschafft:
Sub Schaltfläche2_Klicken()
Range("A5:G15").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:="G:\Pre-Arb Requests\prearb.csv", FileFormat _
:=xlCSVMSDOS, CreateBackup:=False
End Sub

Leider ist in der csv Datei als trennzeichen ein , und kein ; Wenn man es manuell auf selben wege speichert sind als trennzeichen ; Weiß jemand wie ich das lösen kann?
Vielen Dank und viele Grüße
Max

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code für speichern einer csv Datei
10.04.2014 11:52:48
EtoPHG
Hallo Max,
Häng an das .SaveAs noch den Parameter CreateBackup:=False, Local:=True
Gruess Hansueli

AW: VBA Code für speichern einer csv Datei
10.04.2014 12:08:52
Andreas
Hi Hansueli,
super, vielen Dank!:-)
Hast Du auch eine Idee, wie man hinter den Dateinamen noch ein time flag einfügen kann um die überschreibung der datei zu vermeiden? Also z.B prearb201404101206.csv, prearb201404101208.csv, prearb201404110931.csv, usw...
Vielen Dank nochmal und viele Grüße
Max

Anzeige
AW: VBA Code für speichern einer csv Datei
10.04.2014 14:30:03
EtoPHG
Hallo Max,
Dein Code könnte dann so aussehen:
Sub Schaltfläche2_Klicken()
Const cDir As String = "G:\Pre-Arb Requests\"
Const cFName As String = "prearb"
Const cFExt As String = ".csv"
Dim sFullFile As String
sFullFile = cDir & cFName & Format(Now, "YYYYMMDDhhmm") & cFExt
Range("A5:G15").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=sFullFile, FileFormat _
:=xlCSVMSDOS, CreateBackup:=False, Local:=True
End Sub
Gruess Hansueli

Anzeige
AW: VBA Code für speichern einer csv Datei
14.04.2014 09:35:06
Andreas
Hallo Hansueli,
1000 Dank!!! Funktioniert super:-)
VG
Max

AW: VBA Code für speichern einer csv Datei
14.04.2014 11:02:49
Andreas
Hi Hansueli,
sorry, ich nochmal...
Gibt es auch eine Möglichkeit nur die Zeilen mit Inhalt zu kopieren und als csv datei zu speichern?
Jetzt habe ich ja immer die Range A5:G15 die kopiert wird...A5 ist als Anfang auch immer gleich nur manchmal geht es nur bis G7 oder G9 evtl. sogar mal bis G18. Kann man da etwas ändern?
Vielen Dank und viele Grüße
Max

Anzeige
AW: VBA Code für speichern einer csv Datei
14.04.2014 13:41:06
Rudi
Hallo,
wenn A immer gefüllt ist:
Sub Schaltfläche2_Klicken()
Const cDir As String = "G:\Pre-Arb Requests\"
Const cFName As String = "prearb"
Const cFExt As String = ".csv"
Dim sFullFile As String
sFullFile = cDir & cFName & Format(Now, "YYYYMMDDhhmm") & cFExt
Range(Cells(5, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 7).Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=sFullFile, FileFormat _
:=xlCSVMSDOS, CreateBackup:=False, Local:=True
End Sub

Gruß
Rudi

Anzeige
AW: VBA Code für speichern einer csv Datei
15.04.2014 10:52:54
Andreas
Hallo Rudi,
super, 1000 Dank!!!
VG
Max
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA für das Speichern eines Excel-Tabellenblatts als CSV-Datei


Schritt-für-Schritt-Anleitung

Um ein Excel-Tabellenblatt als CSV-Datei zu speichern, kannst Du den folgenden VBA-Code verwenden:

Sub Schaltfläche2_Klicken()
    Const cDir As String = "G:\Pre-Arb Requests\"
    Const cFName As String = "prearb"
    Const cFExt As String = ".csv"
    Dim sFullFile As String

    sFullFile = cDir & cFName & Format(Now, "YYYYMMDDhhmm") & cFExt
    Range("A5:G15").Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:=sFullFile, FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True
End Sub

Dieser Code kopiert die Zellen von A5 bis G15 und speichert sie als CSV-Datei. Beachte, dass Du den Parameter Local:=True hinzufügst, um das Semikolon als Trennzeichen zu verwenden.


Häufige Fehler und Lösungen

Problem: Das Trennzeichen in der CSV-Datei ist ein Komma statt eines Semikolons.
Lösung: Füge den Parameter Local:=True zu Deinem SaveAs-Befehl hinzu:

ActiveWorkbook.SaveAs Filename:=sFullFile, FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True

Problem: Die Datei überschreibt sich ständig.
Lösung: Verwende einen Zeitstempel im Dateinamen, um dies zu vermeiden, wie im Schritt-für-Schritt-Beispiel gezeigt.


Alternative Methoden

Wenn Du eine andere Methode suchst, um ein Excel-Blatt als CSV zu exportieren, kannst Du auch die QueryTable-Methode verwenden. Diese ist besonders nützlich, wenn Du große Datenmengen verarbeiten willst. Hier ein Beispiel:

Sub ExportAsCSV()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("DeinTabellenblatt")

    ws.Copy
    With ActiveWorkbook
        .SaveAs Filename:="G:\Pre-Arb Requests\export.csv", FileFormat:=xlCSV, CreateBackup:=False
        .Close False
    End With
End Sub

Praktische Beispiele

Wenn Du nur die Zeilen mit Inhalt kopieren und als CSV speichern möchtest, kannst Du den folgenden Code verwenden:

Sub Schaltfläche2_Klicken()
    Const cDir As String = "G:\Pre-Arb Requests\"
    Const cFName As String = "prearb"
    Const cFExt As String = ".csv"
    Dim sFullFile As String

    sFullFile = cDir & cFName & Format(Now, "YYYYMMDDhhmm") & cFExt
    Range(Cells(5, 1), Cells(Rows.Count, 1).End(xlUp)).Resize(, 7).Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:=sFullFile, FileFormat:=xlCSVMSDOS, CreateBackup:=False, Local:=True
End Sub

Dieser Code kopiert nur die gefüllten Zellen ab Zeile 5 und speichert sie in einer CSV-Datei.


Tipps für Profis

  • Nutze xlCSVUTF8, wenn Du Zeichen außerhalb der Standard-Zeichencodierung speichern möchtest.
  • Teste Deinen Code regelmäßig, um sicherzustellen, dass alles wie gewünscht funktioniert.
  • Füge Kommentare in Deinen VBA-Code ein, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Wie speichere ich ein Excel-Blatt als CSV-Datei in einer bestimmten Codierung?
Nutze den Parameter FileFormat:=xlCSVUTF8, um eine UTF-8 codierte CSV-Datei zu erstellen.

2. Kann ich mehrere Tabellenblätter in einer CSV-Datei speichern?
CSV-Dateien unterstützen nur eine Tabelle pro Datei. Du musst jedes Blatt einzeln speichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige