Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: mehrere Tabellenblätter zu CSV

mehrere Tabellenblätter zu CSV
18.08.2022 14:06:02
Silke
Hallo,
für Hilfe wäre ich sehr dankbar, ich nutze bisher nur den VBA Recorder und ändere dann nur noch Kleinigkeiten, besitze
also wenig VBA Kenntnisse.
Ich möchte aus einer Excel Datei mit mehreren Tabellenblättern alle Blätter in jeweils eine CSV Datei exportieren und dies
mittels VBA lösen.
Im Netz habe ich dazu folgendes Makro gefunden:

Sub ExportSheetsToCSV()
Dim xWs As Worksheet
Dim xcsvFile As String
For Each xWs In Application.ActiveWorkbook.Worksheets
xWs.Copy
xcsvFile = CurDir & "\" & xWs.Name & ".csv"
Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, _
FileFormat:=xlCSV, CreateBackup:=False
Application.ActiveWorkbook.Saved = True
Application.ActiveWorkbook.Close
Next
End Sub
Das Problem ist nur, dass die so erstellten CSV Dateien das Komma als Trennzeichen verwenden, ich benötige
jedoch das Semikolon als Trennzeichen, da ich nur dann die Dateien in meinem Programm einlesen kann.
Für Hilfe wäre ich dankbar
Silke
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Tabellenblätter zu CSV
18.08.2022 14:20:17
Rudi
Hallo,

        Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, _
FileFormat:=xlCSV, CreateBackup:=False, Local:=TRUE
Gruß
Rudi
AW: mehrere Tabellenblätter zu CSV
18.08.2022 15:15:44
Silke
Hallo Rudi,
vielen Dank für die super schnelle Hilfe, klappt super und macht mir das Leben ein wenig leicher.
Gruß
Sike
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Tabellenblätter in CSV exportieren


Schritt-für-Schritt-Anleitung

Um mehrere Tabellenblätter in eine CSV-Datei zu exportieren, kannst Du das folgende VBA-Makro verwenden. Es wurde entwickelt, um alle Blätter eines Arbeitsbuchs einzeln als CSV-Datei zu speichern.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:

    Sub ExportSheetsToCSV()
        Dim xWs As Worksheet
        Dim xcsvFile As String
        For Each xWs In Application.ActiveWorkbook.Worksheets
            xWs.Copy
            xcsvFile = CurDir & "\" & xWs.Name & ".csv"
            Application.ActiveWorkbook.SaveAs Filename:=xcsvFile, _
            FileFormat:=xlCSV, Local:=True, CreateBackup:=False
            Application.ActiveWorkbook.Saved = True
            Application.ActiveWorkbook.Close
        Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.
  5. Führe das Makro aus, um alle Tabellenblätter als CSV-Dateien zu exportieren.

Stelle sicher, dass Du die Option Local:=True im SaveAs-Befehl verwendest, um das Semikolon als Trennzeichen in der CSV-Datei zu erhalten.


Häufige Fehler und Lösungen

  • Problem: CSV-Dateien verwenden ein Komma als Trennzeichen.

    • Lösung: Stelle sicher, dass Du Local:=True im SaveAs-Befehl verwendest, wie im obigen Code gezeigt.
  • Problem: Fehlermeldung beim Ausführen des Makros.

    • Lösung: Überprüfe, ob Du das Makro in einer Datei im .xlsm-Format gespeichert hast, da andere Formate die Makrofunktionalität möglicherweise einschränken.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du die Tabellenblätter auch manuell als CSV speichern:

  1. Wähle das gewünschte Tabellenblatt aus.
  2. Gehe zu Datei > Speichern unter.
  3. Wähle den Dateityp CSV (Comma delimited) (*.csv) und speichere die Datei.
  4. Wiederhole diesen Vorgang für jedes Tabellenblatt.

Beachte, dass diese Methode zeitaufwendig sein kann, insbesondere wenn Du mehrere Tabellenblätter hast.


Praktische Beispiele

Angenommen, Du hast ein Excel-Dokument mit den Tabellenblättern "Januar", "Februar" und "März". Mit dem oben angegebenen VBA-Code kannst Du alle diese Blätter in separate CSV-Dateien exportieren:

  • Januar.csv
  • Februar.csv
  • März.csv

Alle diese Dateien werden im aktuellen Verzeichnis gespeichert und verwenden das Semikolon als Trennzeichen, wenn Du die Local:=True-Option verwendest.


Tipps für Profis

  • Wenn Du die CSV-Dateien nach dem Export in einem bestimmten Ordner speichern möchtest, kannst Du den CurDir-Befehl durch einen spezifischen Pfad ersetzen:

    xcsvFile = "C:\DeinOrdner\" & xWs.Name & ".csv"
  • Du kannst auch die Excel-Funktion Suchen in allen Tabellenblättern verwenden, um spezifische Daten zu finden, bevor Du den Export startest.


FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass die CSV-Dateien das richtige Trennzeichen verwenden?
Antwort: Verwende die Option Local:=True im SaveAs-Befehl, um das Semikolon als Trennzeichen zu erhalten.

2. Frage
Kann ich auch nur bestimmte Tabellenblätter exportieren?
Antwort: Ja, Du kannst die For Each-Schleife anpassen, um nur spezifizierte Blätter zu exportieren, indem Du Bedingungen hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige