Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Problem mit Umlaute im Link

Forumthread: Problem mit Umlaute im Link

Problem mit Umlaute im Link
25.11.2025 10:06:37
Dieter
Hi alle,

ich habe ein Problem mit Umlauten. In meinem Excel File erzeuge ich per Makro eine E-Mail in Outlook. In der E-Mail ist ein Link vom jeweiligen File (strLink = This.Workbook.Path). Jetzt ist es so das im Datei Pfad Umlaute enthalten sind die beim versenden der E-Mail anscheinend umformiert werden und der Link für die Empfänger nicht lesbar ist. Kennt jemand das Problem oder weiß wer wie ich das beheben kann ohne die Namen der Ordner ändern zu müssen?

Grüße
Dieter
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 10:13:39
Alwin Weisangler
Hallo Dieter,

einer der möglichen Wege ist dafür REPLACE() zu nutzen. Das kann man auch bequem verschachtelt in einer Zeile erschlagen.

Gruß Uwe
AW: Problem mit Umlaute im Link
25.11.2025 11:06:32
UweD
Hallo

Meinst du das?

| Zeichen     | Encodiert      |

| -------- | -------------- |
| ä | %C3%A4 |
| ö | %C3%B6 |
| ü | %C3%BC |
| ß | %C3%9F |
| Ä | %C3%84 |
| Ö | %C3%96 |
| Ü | %C3%9C |
| Leerzeichen | %20 oder + |
| ? | %3F |
| & | %26 |
| # | %23 |



https://example.com/Übergrößen/Schranksystem Weiß.html

wird zu
https://example.com/%C3%9Cbergro%CC%88%C3%9Fen/Schranksystem%20Wei%C3%9F.html


Die müsstest du dann per Replace ersetzen

LG UweD
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 12:36:48
Ulf
Hi,
aus https://stackoverflow.com/questions/218181/how-can-i-url-encode-a-string-in-excel-vba die gut funktionierende Lösung

bspw
ThisWorkbook.Worksheets(1).Range("A1").Value2 = "https://" & URLEncode("sp äter")



Private Const CP_UTF8 = 65001


#If VBA7 Then
Private Declare PtrSafe Function WideCharToMultiByte Lib "kernel32" ( _
ByVal CodePage As Long, _
ByVal dwFlags As Long, _
ByVal lpWideCharStr As LongPtr, _
ByVal cchWideChar As Long, _
ByVal lpMultiByteStr As LongPtr, _
ByVal cbMultiByte As Long, _
ByVal lpDefaultChar As Long, _
ByVal lpUsedDefaultChar As Long _
) As Long
#Else
Private Declare Function WideCharToMultiByte Lib "kernel32" ( _
ByVal CodePage As Long, _
ByVal dwFlags As Long, _
ByVal lpWideCharStr As Long, _
ByVal cchWideChar As Long, _
ByVal lpMultiByteStr As Long, _
ByVal cbMultiByte As Long, _
ByVal lpDefaultChar As Long, _
ByVal lpUsedDefaultChar As Long _
) As Long
#End If

Public Function UTF16To8(ByVal UTF16 As String) As String
Dim sBuffer As String
Dim lLength As Long
If UTF16 > "" Then
#If VBA7 Then
lLength = WideCharToMultiByte(CP_UTF8, 0, CLngPtr(StrPtr(UTF16)), -1, 0, 0, 0, 0)
#Else
lLength = WideCharToMultiByte(CP_UTF8, 0, StrPtr(UTF16), -1, 0, 0, 0, 0)
#End If
sBuffer = Space$(lLength)
#If VBA7 Then
lLength = WideCharToMultiByte(CP_UTF8, 0, CLngPtr(StrPtr(UTF16)), -1, CLngPtr(StrPtr(sBuffer)), LenB(sBuffer), 0, 0)
#Else
lLength = WideCharToMultiByte(CP_UTF8, 0, StrPtr(UTF16), -1, StrPtr(sBuffer), LenB(sBuffer), 0, 0)
#End If
sBuffer = StrConv(sBuffer, vbUnicode)
UTF16To8 = Left$(sBuffer, lLength - 1)
Else
UTF16To8 = ""
End If
End Function

Public Function URLEncode( _
StringVal As String, _
Optional SpaceAsPlus As Boolean = False, _
Optional UTF8Encode As Boolean = True _
) As String

Dim StringValCopy As String: StringValCopy = IIf(UTF8Encode, UTF16To8(StringVal), StringVal)
Dim StringLen As Long: StringLen = Len(StringValCopy)

If StringLen > 0 Then
ReDim Result(StringLen) As String
Dim I As Long, CharCode As Integer
Dim Char As String, Space As String

If SpaceAsPlus Then Space = "+" Else Space = "%20"

For I = 1 To StringLen
Char = Mid$(StringValCopy, I, 1)
CharCode = Asc(Char)
Select Case CharCode
Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126
Result(I) = Char
Case 32
Result(I) = Space
Case 0 To 15
Result(I) = "%0" & Hex(CharCode)
Case Else
Result(I) = "%" & Hex(CharCode)
End Select
Next I
URLEncode = Join(Result, "")

End If
End Function

hth
Ulf
Anzeige
AW: Problem mit Umlaute im Link
27.11.2025 08:41:37
Marc
Das einfachste wäre doch , die Umlaute aus dem Pfad zu entfernen ...

Ich hatte früher das Problem auch hin und wieder, aber ich erstelle und schreibe nur noch Pfade und Dateien ohne Umlaute und ohne Leerzeichen
AW: Problem mit Umlaute im Link
27.11.2025 10:13:08
schauan
- was benutzt Du für ein Mailprogramm?
- wie sieht Dein Code zur Erzeugung der Mail aus?
- hast Du mal geschaut, was passiert, wenn Du den Link in Anführungszeichen setzt?

Wenn ich Deinen Link nehme, in Outlook (Klassisch) einfüge, den mir sende, passiert nix.
Bild der Nachricht:
Userbild

Mein "Quelltext" - über das Outlook Kontext Menü aufgerufen, schaut so aus

https://sharepoint.com/teams/Freigegebene%20D/Häuser

class=MsoNormal> 

 

Viel Spaß und Erfolg mit dem cleveren Excel – (und Office-) Forum,

(schauan)

Admin im https://www.clever-excel-forum.de"> style='color:#0563C1'>https://www.clever-excel-forum.de

class=MsoNormal> 



"Quelltext" als Bild:
Userbild

Übrigens, Herber schreibt als Hinweis beim Dateiupload:
Die Größe der Datei ist auf etwa 600 KB begrenzt. Die hochzuladende Datei darf sich nicht in einem Verzeichnis mit einem Leerzeichen im Namen oder mit einer sehr grossen Pfadtiefe befinden. Zudem darf die Datei selbst keine Leerzeichen im Namen beinhalten. Wenn der Upload nicht funktioniert, verschiebe die Datei in ein Root-Verzeichnis wie z.B. 'C:\' und versuche es noch einmal.


und google empfiehlt das
Userbild
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 12:23:48
UweD
Der Code dafür könnte so aussehen:


Sub test()

Dim TText As String, Arr1, Arr2, i As Integer

TText = "https://example.com/Übergrößen/Schranksystem Weiß.html" 'Beispiel

Arr1 = Array("ä", "ö", "ü", "ß", "Ä", "Ö", "Ü", " ", "?", "&", "#")
Arr2 = Array("%C3%A4", "%C3%B6", "%C3%BC", "%C3%9F", "%C3%84", "%C3%96", "%C3%9C", "%20", "%3F", "%26", "%23")

For i = LBound(Arr1) To UBound(Arr1)
TText = Replace(TText, Arr1(i), Arr2(i))
Next

MsgBox TText
End Sub



LG UweD
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 14:27:40
Dieter
Danke für eure Hilfe, aber das hat alles nicht funktioniert. Wenn ich z.b. ä gegen %C3%A4 ersetze erhalte ich beim öffnen des links statt ä das "%u00e4".

Kann es sein das die E-Mail die ich als html erzeuge im header einen Verweis auf UTF-8 benötigt? In meinen Outlook Einstellungen habe ich alles auf UTF-8 umgestellt. Das bringt aber leider auch nichts.
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 14:54:14
Alwin Weisangler
Hallo Dieter,

zeige mal den erzeugten String (also vor der Verarbeitung) und versendeten String den tatsächlich im Mail enthaltenen.
Anonymisiere diesen falls erforderlich.

Gruß Uwe

AW: Problem mit Umlaute im Link
25.11.2025 16:06:01
Dieter
Ich kann den Link nicht zeigen, aber ein Beispiel.

Bei Erstellung der E-Mail sieht der Link wie folgt aus:
https://sharepoint.com/teams/Freigegebene%20D/Häuser


Wenn ich die E-Mail an andere oder mich schicke sieht der Link nach erhalt der E-Mail so aus:
https://sharepoint.com/teams/Freigegebene%20D/H%C3%A4user


Wenn ich das ä vorher in %C3%A4 umwandle sieht der Link beim Empfangen der E-Mail so aus:
https://sharepoint.com/teams/Freigegebene%20D/H%u00e4user


Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 17:21:59
Alwin Weisangler
Hallo Dieter,

%20D ist ein Leerzeichen. Leerzeichen habe sollte man im THML Link und besser auch anderswo vermeiden.
Da ist bei der Installation des PC des Usernamens am Ende ein Leerzeichen angehangen worden. So was passiert bei Strg./c und Strg./v.

Gruß Uwe
AW: Problem mit Umlaute im Link
25.11.2025 10:19:45
Alwin Weisangler
hier noch ein kleines Beispiel:


Sub Umlaute()
With Tabelle1
.Cells(1, 1) = Replace(Replace(Replace(Replace(.Cells(1, 1), "ü", "ue"), "ä", "ae"), "ö", "oe"), "ß", "ss")
End With
End Sub


Gruß Uwe
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 10:25:40
Dieter
Hi Uwe,

danke für den Tipp, aber das würde mir nichts bringen. Der Link wird bei der Erstellung der E-Mail korrekt angezeigt und funktioniert. Wenn ich aber die E-Mail versende ändert sich die Formatierung (Umlaute) und kommt beim Empfänger anders an und wird dadurch unbrauchbar. In Outlook habe ich das Format von html auf Rich-Text geändert, aber das hat nichts gebracht. Kann es damit zusammenhängen das der Link auf einen Sharepoint verweißt und die erzeugte E-Mail als html aufgebaut ist?
Anzeige
AW: Problem mit Umlaute im Link
25.11.2025 10:30:19
Alwin Weisangler
Da musst du suchen, wo die Änderung herkommt. Dies passiert nicht einfach mal so. Von außen Vermutungen diesbezüglich anzustellen ohne die Hintergründe zu kennen wird nichts bringen.

Gruß Uwe

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige