Hallo,
wenn du bei der Abfrage des Trennzeichens mit ENTF den Inhalt der Input-Box entfernst und dann bestätigst, wird als Trennzeichen Tab genommen. Das funktioniert so weit auch, nur werden die einzelnen Zellinhalte in Anführungszeichen gesetzt. Ich nehme mal an, dass du diese meinst.
Die Anführungszeichen werden hier im Code durch die Zeile
[code]strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen[/code]
eingefügt.
Ersetze diese Zeile durch:
[code]strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen[/code]
Da du ja nur das TAB-Trennzeichen willst, kannst du dir die Abfrage auch sparen:
[code]Sub CSVTab2()
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 = Left(strMappenpfad, InStrRev(strMappenpfad, ".")) & "csv"
strDateiname = InputBox("Wie soll die CSV-Datei heißen (c:\test.csv)?", "CSV-Export", strMappenpfad)
If strDateiname = "" Then Exit Sub
strTrennzeichen = vbTab
Set Bereich = ActiveSheet.UsedRange
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
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[/code]
Ich habe auch die Ermittlung des Dateinamens angepasst, damit der Code auch mit xlsx- und .xlsm-Mappen arbeitet.
Gruß
M.O.