Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen
#1
Liebes Forum,

folgende Frage: Wie kann ich eine Excel-Tabelle (MS Office 2016) per Visual Basic (VB) in eine CSV-Datei exportieren, ohne dass sie ihre Sonderzeichen verliert? Deutsche Sonderzeichen/Umlaute ÄÖÜß werden zwar problemlos exportiert, aber polnische Sonderzeichen ąćęń usw. werden in normale Buchstaben (acen) verändert.

Etwas mehr im Detail:
Ich möchte eine Excel-Adressdatenbank in CSV konvertieren, um sie später in Outlook importieren zu können. Outlook braucht aber für den Import eine CSV-Datei, in der die Datensätze durch Anführungsstriche (") begrenzt sind. Excel kann das leider nicht. Im Internet habe ich als einzige Lösung gefunden, dass man hierzu ein VB-Makro verwendet, welches den Export übernimmt. Ich kenne mich mit VB nicht aus und habe den Programmcode aus einem Forum übernommen. Die entsprechende Excel-Datei mit Makro habe ich als xlsm-Datei gespeichert und der Export funktioniert wunderbar. Mir ist jetzt aber aufgefallen, dass polnische Namen mit entsprechenden Sonderzeichen umgewandelt werden.

Wie müsste ich den VB-Code unten abändern, damit alle Sonderzeichen übernommen werden? Kann mir da jemand behilflich sein?

Danke und herzlichen Gruß
Yukusoona

Der VB-Code:

Sub CSV_mit_Anfuehrungszeichen()
  Dim wks As Worksheet, Ze As Long, Sp As Long, ZeTmp As String
  Dim lCol As Long, lRow As Long, Frf As Long
  Const csvExport = "C:\Users\***\***.csv"  'Anpassen
  Const Trenner As String = ","    'Trenner für Spalten, kann angepasst werden
  Const Anf As String = """"
 
  Frf = FreeFile
  Set wks = ThisWorkbook.Worksheets("Adressen")  'Anpassen: Register-Name
  lCol = wks.Cells(1, Columns.Count).End(xlToLeft).Column
  lRow = wks.Cells(Rows.Count, 1).End(xlUp).Row
 
  Open csvExport For Output As #Frf
  For Ze = 1 To lRow
      For Sp = 1 To lCol
          ZeTmp = ZeTmp & Anf & CStr(wks.Cells(Ze, Sp).Text) & Anf & Trenner
      Next Sp
      ZeTmp = Left(ZeTmp, Len(ZeTmp) - 1)  'Letztes Trennzeichen löschen
      Print #Frf, ZeTmp
      ZeTmp = ""
  Next Ze
  Close #Frf
End Sub


Vorhin habe ich in einem anderen Forum noch einen weiteren Programmcode gefunden, der zwar auch funktioniert, aber ebenfalls die Sonderzeichen klaut:

Sub CSVFile()
Dim SrcRg As Range
Dim CurrRow As Range
Dim CurrCell As Range
Dim CurrTextStr As String
Dim ListSep As String
Dim FName As Variant
FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
ListSep = Application.International(xlListSeparator)
If Selection.Cells.Count > 1 Then
Set SrcRg = Selection
Else
Set SrcRg = ActiveSheet.UsedRange
End If
Open FName For Output As #1
For Each CurrRow In SrcRg.Rows
CurrTextStr = ìî
For Each CurrCell In CurrRow.Cells
CurrTextStr = CurrTextStr & """" & CurrCell.Value & """" & ListSep
Next
While Right(CurrTextStr, 1) = ListSep
CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
Wend
Print #1, CurrTextStr
Next
Close #1
End Sub
Notebook Samsung Series 5 (550P5C-S04), OS Windows 10 Home, 64-bit, Microsoft Office Professional Plus 2019
Zitieren


Nachrichten in diesem Thema
Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - von Yukusoona - 06.11.2022, 03:37

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste




Hinweis auf Angebot Excel-Inside - lang    Keine Lösung gefunden? Du kannst Dich gerne an unser erfahrenes Experten-Team wenden um dein Anliegen zu besprechen.
   Gerne erstellen wir auf dieser Basis ein Angebot.
   Sende deine Anfrage einfach
per E-Mail an anfrage@excel-inside.de


Powerd and supported by Excel-InsideSolutions