Microsoft Excel

Herbers Excel/VBA-Archiv

Umwandlung von Zeichen ins WEB-Format


Betrifft: Umwandlung von Zeichen ins WEB-Format von: Siegfried
Geschrieben am: 29.11.2017 09:13:09

Hallo Werte Forumsmitglieder!
Habe derzeit Daten in welchen sich Zeichen befinden die bei einem Export in ein KML-Format in diesem nur Probleme machen und daher die erzeugte KML nicht laufen lassen.
Was ich bis jetzt feststellen konnte handelt es sich dabei um Namen aus den Nördlichen und Slawischen Länderbereichen die, wie z.B. Ď, ĭ, Š, Ť, Ž, ř also das auf den Kopf gestellte ˇ Zeichen haben.
Wie wäre es möglich diese Zeichen, entweder durch den neutralen gleichen Buchstaben, oder eben ins Webformat zu ersetzen. Mir fehlt dazu leider der Plan
MfG Siegfried

  

Betrifft: AW: Umwandlung von Zeichen ins WEB-Format von: Zwenn
Geschrieben am: 29.11.2017 10:11:10

Hallo Siegfried,

die folgende Funktion habe ich mal gebastelt, um in automatisch generierten Dateinamen Zeichen umzuwandeln, die in Dateinamen verboten sind. Für Deinen Zweck musst Du nur Deine Zeichen und die Ersetzungscodes statt der vorhandenen Zeichen einsetzen. Die Liste lässt sich ja beliebig erweitern oder kürzen.

Damit die Forensoftware die zu einzusetzenden Zeichenketten nicht als Zeichen darstellt, das ersetzt werden soll, habe ich hinter das & jeweil ein Freizeichen eingefügt.

Function StringSpeicherKonform(Zeichenkette As String) As String

Dim ZeichenZuPruefen As String
Dim ZeichenketteSpeicherkonform As String
Dim i As Long


ZeichenketteSpeicherkonform = ""

For i = 1 To Len(Zeichenkette)
    ZeichenZuPruefen = Mid(Zeichenkette, i, 1)
            
    Select Case ZeichenZuPruefen
        Case "\":  ZeichenZuPruefen = "& #92;"
        Case "/":  ZeichenZuPruefen = "& #47;"
        Case ":":  ZeichenZuPruefen = "& #58;"
        Case "*":  ZeichenZuPruefen = "& #42;"
        Case "?":  ZeichenZuPruefen = "& #63;"
        Case """":  ZeichenZuPruefen = "& #34;"
        Case "<":  ZeichenZuPruefen = "& #60;"
        Case ">":  ZeichenZuPruefen = "& #62;"
        Case "|":  ZeichenZuPruefen = "& #124;"
    End Select
            
    ZeichenketteSpeicherkonform = ZeichenketteSpeicherkonform & ZeichenZuPruefen
Next i

StringSpeicherKonform = ZeichenketteSpeicherkonform

End Function

Viele Grüße,

Zwenn


  

Betrifft: AW: Umwandlung von Zeichen ins WEB-Format von: Zwenn
Geschrieben am: 29.11.2017 11:28:15

Hallo Siegfried,

sorry, habe nicht berücksichtigt, dass Deine Zeichencodierung sich nicht in den VBA Editor eingeben lässt, weil der nur ANSI Codierung schluckt.

Ich habe geschaut, wie man es lösen könnte und bin auf folgenden Link gestoßen. Den Workarround habe ich aber leider auf die Schnelle nicht zum Laufen gebracht. Vielleicht liegen Deine Daten nicht in UTF-8, sondern einer anderen Codierung vor?
https://stackoverflow.com/questions/7269399/declaring-a-unicode-string-in-vba-in-excel

Hier gibt es Leute, die sich mit Umcodierungen mit Sicherheit besser auskennen als ich. Vielleicht hat jemand eine Idee.

Viele Grüße,

Zwenn


  

Betrifft: AW: Umwandlung von Zeichen ins WEB-Format von: Siegfied
Geschrieben am: 30.11.2017 00:35:54

Hallo Zwenn,
dein erster Beitrag hat mir, mal für meinen Bedarf angepasst, über die ersten Probleme geholfen.
Einige Zeichen blieben mir leider über, sie zu entschlüsseln welche sie eigentlich im Original waren, hatte die KML-Datei mit Excel eingelesen und da dürften einige Zeichen verloren gegangen bzw. falsch eingestuft worden sein.
Hier ein Beispiel wie es in Excel lautete

Im Original der Homepage aber lauten sollte.
Stare Jabłonki-Kątno

Habe mir also deine FUNC so angepasst

  • Function StringWEBKonform(Zeichenkette As String) As String
    Dim ZeichenZuPruefen As String
    Dim ZeichenketteWEBkonform As String
    Dim i As Long
    
    ZeichenketteWEBkonform = ""
    
    For i = 1 To Len(Zeichenkette)
        ZeichenZuPruefen = Mid(Zeichenkette, i, 1)
                
        Select Case ZeichenZuPruefen
            Case "&":  ZeichenZuPruefen = "&"
            Case Chr(34): ZeichenZuPruefen = """
            Case ">": ZeichenZuPruefen = ">"
            Case "<>": ZeichenZuPruefen = "<>"
            Case "á": ZeichenZuPruefen = "á"
            Case "ý": ZeichenZuPruefen = "ý"
            Case "í": ZeichenZuPruefen = "í"
            Case "š": ZeichenZuPruefen = "š"
            Case "—": ZeichenZuPruefen = "&8211;"
            Case "vbCrLf": ZeichenZuPruefen = ""
            Case "vbLf": ZeichenZuPruefen = ""
            Case "L‚": ZeichenZuPruefen = "l"
            Case "Ä…": ZeichenZuPruefen = "a"
            
        End Select
        ZeichenketteWEBkonform = ZeichenketteWEBkonform & ZeichenZuPruefen
    Next i
    
    StringWEBKonform = ZeichenketteWEBkonform
    End Function


  • Konnte aber leider bis jetzt keine Vorlage finden die auch andere Problemzeichen, die ja auftreten können in WEB-taugliche umwandeln.
    Vielleicht hat da noch wer einen brauchbaren Hinweis, jedenfalls mal ein DANKE an dich.

    Gruß Siegfried


    Beiträge aus den Excel-Beispielen zum Thema "Umwandlung von Zeichen ins WEB-Format"