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

Abspeichern als CSV ohne ""

Forumthread: Abspeichern als CSV ohne ""

Abspeichern als CSV ohne ""
30.01.2017 14:25:56
Winfried
Hallo zusammen,
ich versuche verzweifelt eine Liste als CSV-Datei (Alle Daten stehen in der ersten Spalte mit Kommmas als Trennzeichen, siehe Zitat hierunter) zu exportieren/ abzuspeichern um diese in einem Online-Tool (GPS Visualizer) einsetzen & nutzen zu können.

name,latitude,longitude,n
%0DCust1,51.16,6.49,0
%0DCust2,48.22,11.69,2

Leider erkennt das Online-Tool die Daten nicht, da Excel (beim Abspeichern der Datei als CSV) jeden einzelnen Satz vorne und hinten mit Anführungsstrichen versieht.
So sollte es sein:
%0DCust1,51.16,6.49,0
So ist es in der CSV-Datei(nach Speicherung per VBA):
"%0DCust1,51.16,6.49,0"
Wenn ich die Datei manuell öffne & wieder abspeichere ploppt eine Msgbox auf:

xxxxxxxx.csv kann Merkmale enthalten, die mit CSV (Trennzeichen-getrennt) nicht kompatibel  _
sind.
Möchten sie die Arbeitsmappe in diesem Format speichern?

Bestätige ich nun mit ja, dann wird die CSV-Datei ohne Anführungsstriche abgespeichert und ich kann sie in dem Online-Tool nutzen.
Bei der Speicherung via VBA kommt die Zusatzfrage nicht.

Newbook.SaveAs Filename:="C:\CSV-Datei\Visualisierung.csv", _
FileFormat:=xlCSV, CreateBackup:=False

Gibt es hier irgendeine Lösung (vielleicht der Einbau der Zusatzabfrage), damit die CSV ohen die "" abgespeichert werden kann?
Viele Grüße und danke im Voraus für eure Mühen.
Winfried
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abspeichern als CSV ohne ""
30.01.2017 14:32:13
Fennek
Hallo,
das habe ich in meinem "Archiv" gefunden:

sub SaveAsCSV_RPP()
dim FullName as string
FullName = Application.GetSaveAsFilename("DeinDateiName", "CSV-Dateien (*.csv), *.csv")
if FullName  "" then
activesheet.SaveAs FullName, xlCSVMSDOS
end if
end sub
mfg
Anzeige
AW: Abspeichern als CSV ohne ""
30.01.2017 16:01:51
Winfried
Hallo Fennek,
damit klappt es leider auch nicht....
Danke dir trotzdem =)
Winfried
AW: Open or Edit
30.01.2017 16:38:19
Fennek
Hallo,
schade!
Es gibt mindestens zwei weitere Möglichkeiten:

Sub wr_Txt_File()
sPfad = "c:\temp\"
sFile = "wr-test.txt"
Open sPfad & sFile For Output As #1
Print #1, "Hallo World"
Print #1, "Bye"
Print #1, Cells(1, 1)
Write #1, "new line"
Write #1, Cells(1, 1)
Close #1
End Sub
einer der beiden Schreibfehle ist ohne "".
Der Weg wäre (per Hand) die Datei mit dem Editor zu öffnen und suchen/ersetzen zu nutzen.
mfg
Anzeige
weiterer Vorschlag
30.01.2017 17:09:23
Michael
Hi,
hier die variable Version:
Option Explicit
Function CSV_Erzeugen(blatt, abZelle$, Pfad$, t$) As String
Dim aSp ' = as variant als Array
Dim z&, s$, maxZ& ' & = as long z wie Zeile, $ = as string, s wie string für Ausgab
Dim d As Integer ' d wie Dateinummer
On Error GoTo fehler
aSp = Sheets(blatt).Range(abZelle).CurrentRegion
If Not IsArray(aSp) Then CSV_Erzeugen = "kein Array": Exit Function
maxZ = UBound(aSp)
For z = 1 To maxZ
If z  0 Then CSV_Erzeugen = Err.Description Else CSV_Erzeugen = "ok"
End Function
Sub aufruf()
Dim Pfad$, Ergebnis$
Pfad = "C:\A_Herber\CSV_Export.csv"
'If Dir(Pfad) = "" Then
'  Ergebnis = CSV_Erzeugen("Tabelle1", "A1", Pfad, vbCrLf)
'  If Ergebnis = "ok" Then
'     MsgBox "Datei " & Pfad & " wurde erzeugt"
'    Else
'     MsgBox "Fehler: " & Ergebnis
'  End If
' Else
'  MsgBox "Datei bereits vorhanden"
'End If
' *** oder ganz einfach:
MsgBox CSV_Erzeugen("Tabelle1", "A1", Pfad, vbCrLf)
' Trennen z.B. mit: vblf, vbcr oder vbcrlf
End Sub
Schöne Grüße,
Michael
Anzeige
AW: Abspeichern als CSV ohne ""
31.01.2017 17:17:56
Winfried
Danke euch beiden,
ich hab mir die Grunddaten etwas bearbeitet/verdreht sodaß ich es mit den Infos aus euren beiden Vorschlägen hinbekommen habe =). Manchmal muss man nur den richtigen Tritt in den Hintern bekommen ;o)
Der Ansatz mit dem MSDOS-CSV war auf jeden Fall ne sehr gute Idee =)
Ich danke euch vielmals!!
LG
Winfried
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

CSV-Datei ohne Anführungszeichen abspeichern


Schritt-für-Schritt-Anleitung

Um eine CSV-Datei ohne Anführungszeichen abzuspeichern, kannst du die folgenden Schritte befolgen:

  1. Öffne Excel und erstelle die Daten, die du exportieren möchtest.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu über Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub SaveAsCSV_RPP()
       Dim FullName As String
       FullName = Application.GetSaveAsFilename("DeinDateiName", "CSV-Dateien (*.csv), *.csv")
       If FullName <> "" Then
           ActiveSheet.SaveAs FullName, xlCSVMSDOS
       End If
    End Sub
  5. Führe das Makro aus, um die Daten als CSV-Datei zu speichern.

  6. Überprüfe die CSV-Datei und stelle sicher, dass die Daten ohne Anführungszeichen gespeichert wurden.


Häufige Fehler und Lösungen

  • Fehler: Anführungszeichen erscheinen in der CSV-Datei
    Lösung: Stelle sicher, dass du den Dateiformat xlCSVMSDOS verwendest, um die Anführungszeichen zu vermeiden.

  • Fehler: Datei kann nicht gespeichert werden
    Lösung: Überprüfe den Speicherort und stelle sicher, dass du die richtigen Berechtigungen hast, um dort zu speichern.


Alternative Methoden

Wenn der oben genannte Ansatz nicht funktioniert, kannst du auch folgende Methoden ausprobieren:

  1. Manuelles Speichern: Öffne die Datei in Excel und speichere sie manuell mit Speichern unter → wähle CSV (Comma delimited) (*.csv) aus. Bestätige die Warnmeldung, um die Datei ohne Anführungszeichen zu speichern.

  2. Textdatei erstellen: Verwende den VBA-Code, um eine Textdatei zu erstellen und die Daten ohne Anführungszeichen zu schreiben:

    Sub CreateTextFile()
       Dim sPfad As String
       Dim sFile As String
       sPfad = "C:\temp\"
       sFile = "export.txt"
       Open sPfad & sFile For Output As #1
       Print #1, "Daten ohne Anführungszeichen"
       Close #1
    End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Werte in einer Excel-Tabelle in eine CSV-Datei ohne Anführungszeichen exportieren kannst:

Sub ExportCSV()
    Dim aSp
    Dim z As Long
    Dim Pfad As String
    Pfad = "C:\A_Herber\CSV_Export.csv"
    aSp = Sheets("Tabelle1").Range("A1").CurrentRegion

    Open Pfad For Output As #1
    For z = 1 To UBound(aSp)
        Print #1, Join(aSp(z), ",")
    Next z
    Close #1
End Sub

Tipps für Profis

  • CSV-Optionen anpassen: Überlege dir, ob du die Trennzeichen ändern möchtest, z.B. von Komma auf Semikolon, je nach Bedarf.
  • Powershell nutzen: Wenn du die Möglichkeit hast, benutze powershell mit Export-Csv, um die CSV-Datei ohne Anführungszeichen zu erstellen:

    Import-Csv "deineDatei.csv" | Export-Csv "neueDatei.csv" -NoTypeInformation -Force

FAQ: Häufige Fragen

1. Warum speichert Excel die CSV-Datei mit Anführungszeichen?
Excel fügt Anführungszeichen hinzu, um sicherzustellen, dass die Daten korrekt interpretiert werden, besonders wenn Kommata enthalten sind.

2. Wie kann ich sicherstellen, dass meine CSV-Datei korrekt formatiert ist?
Überprüfe die Datei in einem Texteditor, um sicherzustellen, dass die Daten ohne Anführungszeichen und mit den gewünschten Trennzeichen gespeichert wurden.

3. Was sind die Vor- und Nachteile von xlCSVMSDOS?
Der Vorteil ist, dass es keine Anführungszeichen hinzufügt. Der Nachteil könnte sein, dass nicht alle Excel-Optionen unterstützt werden, die du in anderen CSV-Formaten hast.

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