Office 2013/2016: Excel nach Outlook? Falsches Trennzeichen (CSV)

Beim Versuch, Kontakte von Excel nach Outlook zu portieren, stellt man schnell fest, dass Excel beim CSV-Export ein Semikolon als Feldtrennzeichen verwendet, Outlook beim CSV-Import jedoch ein Komma erwartet.
Der teilweise verbreitete Tipp, über die Windows-Systemsteuerung das Trennzeichen zu ändern, brachte bei mir unter Windows 7 keinen Erfolg – Excel exportierte weiterhin unter Verwendung des „;“. Suchen und Ersetzen verbietet sich von selbst, denn die Daten könnten ja auch mal ein Semikolon enthalten (und sollten deshalb übrigens in Anführungszeichen stehen, was untenstehendes Skript – dann mit Kommata – anbietet).
Eine Lösung brachte schließlich dieses kleine Excel-Makro von Thomas Lexa (CC BY-NC-SA 3.0 DE):
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
Dim blnSave 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.Range("A1:U1000")
Open strDateiname For Output As #1
For Each Zeile In Bereich.Rows
For Each Zelle In Zeile.Cells
If Application.WorksheetFunction.CountBlank(Zeile.Cells) = Zeile.Cells.Count Then
Zeile.Delete
blnSave = False
Else
If blnAnfuehrungszeichen = True Then
strTemp = strTemp & """" & CStr(Zelle.Text) & """" & strTrennzeichen
Else
strTemp = strTemp & CStr(Zelle.Text) & strTrennzeichen
End If
End If
Next
If Right(strTemp, 1) = strTrennzeichen Then strTemp = Left(strTemp, Len(strTemp) - 1)
If blnSave = True Then
Print #1, strTemp
blnSave = True
Else
blnSave = True
End If
strTemp = ""
Next
Close #1
Set Bereich = Nothing
MsgBox "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub
Vor Ausführung den Bereich anpassen (im Code jetzt A1:U1000)!
Office 2013/2016: Excel nach Outlook? Falsches Trennzeichen (CSV) Read More »




















