Anzeige
Archiv - Navigation
1196to1200
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Umlaute in Usernamen

Umlaute in Usernamen
Patrick
Guten Morgen,
mit folgendem Problem schlag ich mich schon den halben Morgen rum:
Ein VBA Skript liest den Usernamen aus mit application.username.
Funktioniert einwandfrei.
Jetzt musste ich das Skript auf Rechnern in Shanghai und Amerika testen, leider wird dort aus einem "ä, ö ü" im Usernamen ein ? da das Zeichen wohl nicht erkannt wird.
Die Funktion Replace(Application.Username,"?","_")
geht leider auch nicht, da das "?" wohl kein festes Zeichen im String ist und nicht erkannt wird.
Meine Idee war, den Fehler (54) abzufangen und manuell zu ersetzten. Die Frage ist nur, wie ich die Position des "?" herrausfinden kann?.
Hat jemand eine Idee wie ich das ? finden kann oder hat einer von euch einen ganz anderen Vorschlag?
Gruß
Patrick

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Umlaute in Usernamen
09.02.2011 11:10:34
Holger,
Hallo,
verwende die Funktion Instr.
Syntax: InStr([Start, ]Zeichenfolge1, Zeichenfolge2[, Vergleich])
Instr liefert also einen Wert zurück, ab dem das gesuchte Zeichen beginnt.
Dann kannst du mit Mid etc die Zeichenkette bearbeiten.
AW: Umlaute in Usernamen
09.02.2011 11:23:48
Patrick
an sich schon nicht schlecht, Problem ist aber, dass das "?" nicht als "?" erkannt wird und man nicht nach Suchen kann.
Scheint wohl nen Platzhalter zu sein für Buchstaben die nicht dargestellt werden können.
AW: Umlaute in Usernamen
09.02.2011 11:27:29
Patrick
Frage noch offen!
keine Lösung, aber ...
09.02.2011 12:09:17
Rudi
Hallo,
...Application.Username würde ich nicht nehmen. Den kann jeder ändern, wie er Lust hat.
Alternative: Environ("Username"). Das gibt den Anmeldenamen zurück.
Gruß
Rudi
Anzeige
mit RegEx
09.02.2011 14:40:39
CitizenX
Hallo Patrik,
kannst ja mal testen.
Die Umlaute werden entsprechend umgewandelt:
Option Explicit

Sub Ersetzen()
    Dim objRegEx As Object
    Dim objMatch As Object
    Dim strText, intIndex
    
        strText = Environ("Username") 'Name der Person 
        
        Set objRegEx = CreateObject("vbscript.regexp")
        With objRegEx
            .Global = True
            .IgnoreCase = True
            .Pattern = "[^a-z A-Z]"
            Set objMatch = .Execute(strText)
        End With
        
        If objRegEx.test(strText) Then
            'Sonderzeichen ersetzen 
            For intIndex = 0 To objMatch.Count - 1
            
                Select Case LCase(objMatch(intIndex))
                Case "ü"
                strText = Replace(strText, objMatch(intIndex), "ue")
                Case "ö"
                strText = Replace(strText, objMatch(intIndex), "oe")
                Case "ä"
                strText = Replace(strText, objMatch(intIndex), "ae")
                Case Else
                strText = Replace(strText, objMatch(intIndex), "")
                End Select
                
            Next
        End If
        'Umgewandelten Namen ausgeben 
        Debug.Print strText
        
    Set objRegEx = Nothing
    Set objMatch = Nothing
End Sub

Grüße
Steffen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige