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

Forumthread: Tabellenblatt als csv speichern

Tabellenblatt als csv speichern
03.12.2018 12:42:55
Jürgen
Hallo zusammen,
ich stehe vor dem Problem, dass ich eine Exceldatei habe, aus dem ich ein Tabellenblatt mit dem Namen "Export" als csv in ein bestimmtes Verzeichnis speichern möchte. Das Ganze soll dann auch noch als "CSV-UTF (durch Trennzeichen getrennt)" gespeichert werden.
Im Internet habe ich das nachfolgende Makro gefunden, welches eigentlich recht gut passt....nur fehlt mir dazu noch folgendes:
- Abfrage nach dem Verzeichnisnamen, oder besser, die Speicherung soll immer in den Pfad: "j:\export\" erfolgen
- Das Dateiformat soll wie oben erwähnt automatisch im Format "CSV-UTF (durch Trennzeichen getrennt)" erfolgen
Weiß jemand von euch, wie man das hier noch einbauen kann:
Sub ExportCSV()
Dim Bereich As Object, Zeile As Object, Zelle As Object
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim strMappenpfad As String
Dim blnAnfuehrungszeichen As Boolean
strMappenpfad = ActiveWorkbook.FullName
strDateiname = InputBox("Bitte den Namen der CSV-Datei angeben.", "CSV-Export", strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, " _
CSV-Export") = vbYes Then
blnAnfuehrungszeichen = True
Else
blnAnfuehrungszeichen = False
End If
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If blnAnfuehrungszeichen = True Then
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
Print #1, strTemp
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub
vielen Dank im voraus.
viele Grüße
Jürgen
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Für UTF8 - probiere es mal...
03.12.2018 13:13:09
Case
Hallo, :-)
... so der Spur nach: ;-)
Option Explicit
Public Sub Main1()
ThisWorkbook.Worksheets("Export").Copy
ActiveWorkbook.SaveAs Filename:="C:\Temp\TestUTF8.csv", FileFormat:=xlCSVUTF8
ActiveWorkbook.Close False
End Sub
Pfad anpassen.
Servus
Case

Anzeige
AW: Für UTF8 - probiere es mal...
03.12.2018 13:38:02
Jürgen
Hi,
leider bin ich VBA-mäßig nicht so richtig fit. Ich weiß irgendwie grad nicht, wie ich das in meinen Code einbauen muss. Kannst Du mir da bitte nochmal helfen ?
viele Grüße
Jürgen
Du baust nichts ein, sondern...
03.12.2018 13:39:49
Case
Hallo, :-)
... nimmst nur diesen Code - Pfad- und Dateiname anpassen und fertig. ;-)
Servus
Case

Anzeige
AW: Du baust nichts ein, sondern...
03.12.2018 13:50:24
Jürgen
Hi Case,
du meinst, der Code ersetzt meinen ganzen Code ?
Das wäre insofern unpraktisch, weil ich die Abfragen nach dem Trennzeichen und ob die Werte in Anführungsstrichen exportiert werden soll, unbedingt benötige.
viele Grüße
Jürgen
Ja - das geht in Excel 2010...
03.12.2018 14:08:49
Case
Hallo, :-)
... noch nicht. :-(
Der letzte Eintrag in folgendem Link sieht vielversprechend aus: ;-)
UTF8...
Servus
Case

Anzeige
AW: Ja - das geht in Excel 2010...
03.12.2018 14:32:26
Jürgen
Hi,
hm, ok....Lücke in Excel entdeckt :-)
Aber ginge es vielleicht die Datei einfach nur als csv zu speichern ohne diese UTF-8 ? Wichtig wäre mir auf jeden Fall dass der Pfad automatisch drin steht und der Dateiname genommen wird wie das Excelfile zu dem Zeitpunkt heißt.
viele Grüße
Jürgen
Anzeige
Das würde dann so...
03.12.2018 14:46:10
Case
Hallo, :-)
... klappen: ;-)
Option Explicit
Public Sub Main1()
ThisWorkbook.Worksheets("Export").Copy
ActiveWorkbook.SaveAs Filename:="C:\Temp\" & Left(ThisWorkbook.Name, _
(InStrRev(ThisWorkbook.Name, ".") - 1)) & ".csv", FileFormat:=xlCSV
ActiveWorkbook.Close False
End Sub
Nur noch den Pfad anpassen - mit abschließendem Backslash.
Servus
Case

Anzeige
;

Forumthreads zu verwandten Themen

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

Excel: Tabellenblatt als CSV speichern


Schritt-für-Schritt-Anleitung

Um ein Excel-Tabellenblatt als CSV zu speichern, kannst du das folgende VBA-Makro verwenden. Es exportiert ein einzelnes Tabellenblatt (in diesem Fall mit dem Namen "Export") und speichert es als CSV-Datei in einem definierten Verzeichnis. Hier ist der angepasste Code:

Sub ExportCSV()
    Dim Bereich As Object, Zeile As Object, Zelle As Object
    Dim strTemp As String
    Dim strDateiname As String
    Dim strTrennzeichen As String
    Dim strMappenpfad As String
    Dim blnAnfuehrungszeichen As Boolean

    ' Definiere den Pfad zum Speichern
    strMappenpfad = "j:\export\" ' Hier den gewünschten Pfad anpassen
    strDateiname = strMappenpfad & "Export.csv" ' Dateiname definieren
    strTrennzeichen = "," ' Trennzeichen festlegen

    ' Abfrage nach Anführungszeichen
    If MsgBox("Sollen die Werte in Anführungszeichen exportiert werden?", vbQuestion + vbYesNo, "CSV-Export") = vbYes Then
        blnAnfuehrungszeichen = True
    Else
        blnAnfuehrungszeichen = False
    End If

    Set Bereich = ActiveSheet.UsedRange
    Open strDateiname For Output As #1
    For Each Zeile In Bereich.Rows
        For Each Zelle In Zeile.Cells
            If blnAnfuehrungszeichen Then
                strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
            Else
                strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
            End If
        Next
        If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
        Print #1, strTemp
        strTemp = ""
    Next
    Close #1
    MsgBox "Export erfolgreich. Datei wurde exportiert nach " & strDateiname
End Sub

Häufige Fehler und Lösungen

Fehler: Das Makro funktioniert nicht, weil der Pfad nicht existiert.
Lösung: Stelle sicher, dass der angegebene Pfad (j:\export\) bereits existiert. Erstelle den Ordner, falls nötig.

Fehler: CSV-Datei wird nicht im UTF-8 Format gespeichert.
Lösung: Verwende den folgenden Code, um die Datei im UTF-8 Format zu speichern:

ActiveWorkbook.SaveAs Filename:="C:\Temp\TestUTF8.csv", FileFormat:=xlCSVUTF8

Alternative Methoden

Eine alternative Methode ist die Nutzung von Excel-Funktionen, um Daten zu exportieren. Du kannst auch das Menü "Speichern unter" verwenden und das Dateiformat auf CSV ändern. Dies ist jedoch weniger flexibel, da es keine Anpassungen wie Trennzeichen oder Anführungszeichen ermöglicht.


Praktische Beispiele

Hier sind einige Beispiele, wie du ein Excel-Blatt als CSV exportieren kannst:

  1. Einzelnes Blatt exportieren: Nutze das oben gezeigte VBA-Makro, um ein spezifisches Blatt zu exportieren.
  2. Mehrere Blätter exportieren: Du kannst eine Schleife erstellen, die durch alle Blätter iteriert und jedes einzelne als CSV speichert.

Tipps für Profis

  • Setze immer einen absoluten Pfad für den Export. Relative Pfade können zu Fehlern führen, wenn das Arbeitsbuch verschoben wird.
  • Achte darauf, dass die Datei nicht geöffnet ist, wenn du sie überschreiben möchtest, um Laufzeitfehler zu vermeiden.
  • Berücksichtige das Trennzeichen, da CSV-Dateien oft durch Kommas getrennt sind. Wenn deine Daten Kommas enthalten, solltest du vielleicht ein anderes Trennzeichen wählen.

FAQ: Häufige Fragen

1. Wie kann ich das Trennzeichen ändern?
Du kannst das Trennzeichen im Code anpassen, indem du die Variable strTrennzeichen änderst.

2. Kann ich mehrere Tabellenblätter gleichzeitig exportieren?
Ja, du kannst eine Schleife über alle Tabellenblätter in der Arbeitsmappe erstellen und für jedes Blatt den Exportvorgang ausführen.

3. Wie speichere ich die Datei im UTF-8 Format?
Verwende FileFormat:=xlCSVUTF8 beim Speichern der Datei, um das CSV im UTF-8 Format zu sichern.

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