Anzeige
Archiv - Navigation
1112to1116
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Export CSV File per Makro
Thorsten
Hallo Experten,
ich habe ein Problem und suche eine Lösung.
Beim Speichern einer Datei als CSV manuell über Daie/Speichern werden die Daten in dem CSV File mit einem Semikolon (;) getrennt. Beim speichern über VBA wird das CSV mit einem Komma (,) getrennt.
ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:=xlCSVMSDOS, CreateBackup:=False
Wie kann ich das CSV File über eine Makro erstellen, in dem die einzelnen Spöaten mit einem Semikolon (;) getrennt sind?
Danke für Eure Hilfe
Gruß
thoboe

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

Betreff
Benutzer
Anzeige
AW: Export CSV File per Makro
10.11.2009 11:45:57
Oberschlumpf
Hi Thorsten
Geht das hier (ungetestet, weil hab deine CSV-Datei nicht)
Sub sbSeperator()
Dim lstrZeile As String
Open "DeinPfad\Deine-CSV-Datei" For Input As #1
Open "DeinPfad\dummy.txt" For Output As #2
Do Until Eof(1)
Line Input #1, lstrZeile
lstrZeile = Replace(lstrZeile, ",", ";")
Print #2, lstrZeile
Loop
Close
Kill "DeinPfad\Deine-CSV-Datei"
Name "DeinPfad\dummy.txt", "DeinPfad\Deine-CSV-Datei"
End Sub
Hilfts?
Ciao
Thorsten
AW: Export CSV File per Makro
10.11.2009 11:46:15
Worti
Hi Thorsten,
vielleicht hilft dir das weiter:
'***********************************************************************************************
' Autor: Worti *
' Datum 23.05.2007 *
' Aufgabe: Exportiere vorgegebenen Bereich als CSV-Datei mit vorgebbarem Trennzeichen *
'***********************************************************************************************
Sub Exportiere_Bereich_in_CSV()
Dim bisZeile As Long, zeile As Long
Dim bisSpalte As Integer, Spalte As Integer
Dim Trennzeichen As String, ExportBereich As String, Ausgabe As String
Dim NewFileName
Close #1
NewFileName = Application.GetSaveAsFilename(fileFilter:="CSV Files (*.csv), *.csv")
If NewFileName  False Then
Open NewFileName For Output As #1
' Hier Trennzeichen eingeben
Trennzeichen = InputBox("Bitte geben Sie das gewünschte Trennzeichen ein: ", " _
Trennzeichen", ";")
If Trennzeichen = "" Then
'Standard-Trennzeichen Semikolon
Trennzeichen = ";"
End If
'Zu exportierender Bereich
ExportBereich = InputBox("Bitte den zu exportierenden bereich eingeben: ", "Bereich",  _
ActiveSheet.UsedRange.Address(False, False))
If ExportBereich = "" Then
'Wenn leer, dann benutzten Bereich exportieren
ExportBereich = ActiveSheet.UsedRange.Address
End If
bisZeile = ActiveSheet.Range(ExportBereich).Rows.Count + ActiveSheet.Range(ExportBereich) _
.Row - 1
bisSpalte = ActiveSheet.Range(ExportBereich).Columns.Count + ActiveSheet.Range( _
ExportBereich).Column - 1
For zeile = ActiveSheet.Range(ExportBereich).Row To bisZeile
Ausgabe = ""
For Spalte = ActiveSheet.Range(ExportBereich).Column To bisSpalte
Ausgabe = Ausgabe & ActiveSheet.Cells(zeile, Spalte).Value
If Spalte  bisSpalte Then
Ausgabe = Ausgabe & Trennzeichen
End If
Next Spalte
Print #1, Ausgabe
Next zeile
Close #1
End If
End 

Sub
Gruß Worti

Anzeige
AW: Export CSV File per Makro
10.11.2009 11:57:21
Thorsten
Danke für die Hilfe!
Der Ansatz von Worti hat mich auf den richtigen Weg gebracht.
Gruß
Thorsten
Per VBA : Parameter LOCAL:=TRUE
10.11.2009 20:08:04
NoNet
Hallo Thorsten,
das lässt sich per VBA einfacher lösen :
Schau Dir mal die Onlinehilfe zu ActiveWorkbook.SaveAs an :
Dort existiert (zumindest unter Excel 2003 - bei XP bin ich nicht ganz sicher !) das Argument LOCAL:=TRUE, damit erreichst Du, dass das lokale Trennzeichen der Systemsteuerung verwendet wird, in deutschen Excel-Versionen also standardmäßig das Semikolon !
Gruß, NoNet
AW: Per VBA : Parameter LOCAL:=TRUE
11.11.2009 11:10:28
Camba
Ich hab dazu auch was,
damit kannst du sogar auswählen was für ein trennzeichen du setzen möchtest
Sub SaveCSV()
' Speichert den Inhalt eines Arbeitsblatts als CSV-Datei
' mit wählbarem Trennzeichen und Maskierung von Einträgen
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
strMappenpfad = ActiveWorkbook.FullName
strMappenpfad = Replace(strMappenpfad, ".xls", ".csv")
strDateiname = InputBox("Wie soll die CSV-Datei heißen (inkl. Pfad)?", "CSV-Export",  _
strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ",")
If strTrennzeichen = "" Then Exit Sub
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If InStr(1, Zelle.Text, strTrennzeichen) > 0 Then
'Zellen, die ein Trennzeichen beinhalten in Anführungsstriche setzen
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 "Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub

Anzeige

133 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige