![]() |
Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Druckversion +- Office-Fragen.de (https://office-fragen.de) +-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html) +--- Forum: Excel (https://office-fragen.de/forum-2.html) +--- Thema: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen (/thread-28434.html) |
Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Yukusoona - 06.11.2022 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 RE: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - maninweb - 06.11.2022 Hallo, dazu sollten die Daten als UTF8-CSV-Datei exportiert werden. Hier mal ein Beispielcode (WriteUTF8WithoutBOM) https://stackoverflow.com/questions/69527182/output-utf-8-text-files-in-excel-vba Gruß RE: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Sigi.21 - 06.11.2022 Hallo, du musst die Textdatei im Format "UTF-8" speichern: FileFormat:=xlCSVUTF8 Gruß Sigi RE: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Yukusoona - 08.11.2022 (06.11.2022, 11:07)maninweb schrieb: Hallo, Guten Tag! Vielen Dank. Ich habe mich zwar in meiner Jugend viel mit Programmieren beschäftigt, aber ich bin da aktuell sehr zurückgeblieben. D.h. ich kann die Codes nicht ohne Weiteres inhaltlich nachvollziehen. Kann ich meinem o.g. Programmcode nicht einfach eine Zeile hinzufügen, um den Export im UTF8-Format zu erzwingen? Danke und Gruß RE: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Yukusoona - 08.11.2022 (06.11.2022, 11:08)Sigi.21 schrieb: Hallo, Guten Tag! Vielen Dank. Ähnliche Rückfrage wie bereits oben: Kann ich den Befehl "FileFormat:=xlCSVUTF8" einfach irgendwo in meinen Programmcode oben einfügen, um den Export im UTF8-Format zu erzwingen? Oder geht das nicht so einfach... Danke und Gruß RE: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Flotter Feger - 08.11.2022 Hallo, speichere deine Excel-Datei einmal händisch und lass dabei den Makro-Rekorder mitlaufen. Dafür braucht man kaum Kenntnisse in Programmierung. ![]() Sabina RE: Excel per Visual Basic (VB) in CSV exportieren mit Sonderzeichen - Flotter Feger - 08.11.2022 ... habe genau das in einem anderen Thread gehabt ... ungefähr so muss es aussehen. PHP-Code: ActiveWorkbook.SaveAs Filename:= _ |