ich hab mal wieder ein Problemchen und hoffe auf hinweise wie ich meinen VBA-Code verändern müsste, um nachfolgend beschriebenes Ergebnis zu erhalten.
Ich versuche mich daran, ein Tabellenblatt in CSV komma getrennt und in UTF-8 abzuspeichern.
Den unten stehenden Code habe ich mal vor einiger Zeit in einem Forum gefunden, der (wie ich finde) Super ist.
Das zu erzeugende File wird im gleichen Ordner abgelegt, es wird aber nochmals der Pfad, Dateiname und Dateiendung abgefragt. Hier kann ich dann die Dateiendung auf *.csv verändern. Ferner wird auch abgefragt welches Trennzeichen man haben möchte und ob die Werte in Anführungszeichen gesetzt werden sollen.
Soweit alles ganz prima, soweit.....
Nun hätte ich gerne zwei Änderungen
Erstens, der Vorgeschlagene Pfad mit dem Dateinamen und der Dateiendung sollte gleich auf *.csv stehen und das Ganze sollte als UTF-8 abgespeichert werden.
Ich wäre sehr Dankbar, wenn mir jemand auf die Sprünge helfen könnte wie zum Ziel meiner Träume käme (ich möchte ja lernen), oder den VBA-Code so verändert, dass es so passt wie ich gerne möchte.
Ich hab schon mal einiges mit dem Makrorekorder ausprobiert, war aber nicht von Erfolg gekrönt.
Hier mein bisheriger 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
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