Discussion:
Umlaute in englische Schreibweise umsetzen?
(zu alt für eine Antwort)
Dag Haeddenskjoeld
2006-04-21 10:23:42 UTC
Permalink
Hallo,
ich schreibe mich seit einiger Zeit mit einem Ausländer in Deutsch.
Nun schrieb er mir, ich möchte bitte die Umlaute in der englischen
Schreibweise, also ö = oe usw. schreiben, da sein Mailreader aus den
Umlauten immer ein Fragezeichen macht.
Ich schreibe meine Mails in der Regel mit Word vor. Nun könnte ich ja
per ,Suchen und ersetzen' die Umlaute in die englische Schreibweise
umsetzen. Das ist aber viel Arbeit.

Gibt es dazu vielleicht ein Makro, das die ganze Sache mit einem
Schlag erledigt?

Gruß,
Dag
Robert M. Franz (RMF)
2006-04-21 11:01:39 UTC
Permalink
ich schreibe mich seit einiger Zeit mit einem Ausländer in Deutsch. Nun
schrieb er mir, ich möchte bitte die Umlaute in der englischen
Schreibweise, also ö = oe usw. schreiben, da sein Mailreader aus den
Umlauten immer ein Fragezeichen macht.
Ich schreibe meine Mails in der Regel mit Word vor. Nun könnte ich ja
per ,Suchen und ersetzen' die Umlaute in die englische Schreibweise
umsetzen. Das ist aber viel Arbeit.
Gibt es dazu vielleicht ein Makro, das die ganze Sache mit einem Schlag
erledigt?
Ein 6-maliges Suchen/Ersetzen ist sicher möglich, und Makros zum Thema
Suchen/Ersetzen findest du z.B. in den .vba-Gruppen.

Allerdings würde ich erstmal an anderer Stelle ansetzen und versuchen,
ob man das Mailtools deines Gegenübers nicht dazu bewegen kann, die
Umlaute korrekt anzuzeigen (sofern dein Mailtool die Kodierung korrekt
erledigt -- ist halt auch eine Wissenschaft für sich :-)).

Gruss
Robert
--
/"\ ASCII Ribbon Campaign | MS
\ / | MVP
X Against HTML | for
/ \ in e-mail & news | Word
Dag Haeddenskjoeld
2006-04-21 16:13:11 UTC
Permalink
Post by Robert M. Franz (RMF)
Ein 6-maliges Suchen/Ersetzen ist sicher möglich, und Makros zum
Thema Suchen/Ersetzen findest du z.B. in den .vba-Gruppen.
Allerdings würde ich erstmal an anderer Stelle ansetzen und
versuchen, ob man das Mailtools deines Gegenübers nicht dazu bewegen
kann, die Umlaute korrekt anzuzeigen (sofern dein Mailtool die
Kodierung korrekt erledigt -- ist halt auch eine Wissenschaft für
sich :-)).
Gruss
Robert
--
Hallo Robert,



für so ein einzelnes Makro extra eine NG für VBA einrichten, ich weis
nicht? Zumal ich mich noch nie mit VBA beschäftigt habe.
Ich hatte schon mal ein Makro erstellt, aber da kommt nur Mist raus,
siehe nachstehend.

Gruß,
Dag

------------------------------

vorher:

Ü
ü
Ä
ä
Ö
ö
ß


Nachher, nach Makro-Durchlauf:

UE
Ue
AE
Ae
OE
Oe
ss


Hier nachstehend das Makro. Vielleicht weis jemand, was falsch daran
ist.

Sub Umlaute()
'
' Umlaute Makro
' Makro aufgezeichnet am 21.04.2006 von membro
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Ä"
.Replacement.Text = "Ae"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "ä"
.Replacement.Text = "ae"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "Ö"
.Replacement.Text = "Oe"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "ö"
.Replacement.Text = "oe"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "Ü"
.Replacement.Text = "Ue"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "ü"
.Replacement.Text = "ue"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "ß"
.Replacement.Text = "ss"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "ß"
.Replacement.Text = "ss"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
End Sub
Helmut Weber
2006-04-21 18:27:02 UTC
Permalink
Hallo Dag,

im Prinzip ist, was Du machst, schon richtig.
Scheint mir nur die Option "Matchcase" zu fehlen.
Matchcase = Groß- und Kleinschreibung beachten".

Etwas profihafter sähe es so aus:

Sub Umlaut()
Dim l
Dim s1()
Dim s2()
Dim r As Range
Set r = ActiveDocument.Range
s1 = Array("Ä", "Ö", "Ü", "ä", "ö", "ü", "ß")
s2 = Array("Ae", "Oe", "Ue", "ae", "oe", "ue", "ss")
For l = 0 To 6
With r.Find
.Text = s1(l)
.Replacement.Text = s2(l)
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
Next
End Sub
--
Gruß

Helmut Weber, MVP WordVBA

"red.sys" & chr$(64) & "t-online.de"
Win XP, Office 2003
Dag Haeddenskjoeld
2006-04-21 19:25:30 UTC
Permalink
Yepp, müssen halt die richtigen Leute ran. Vielen Dank.
Gruß,
Dag
Post by Helmut Weber
Hallo Dag,
im Prinzip ist, was Du machst, schon richtig.
Scheint mir nur die Option "Matchcase" zu fehlen.
Matchcase = Groß- und Kleinschreibung beachten".
Sub Umlaut()
Dim l
Dim s1()
Dim s2()
Dim r As Range
Set r = ActiveDocument.Range
s1 = Array("Ä", "Ö", "Ü", "ä", "ö", "ü", "ß")
s2 = Array("Ae", "Oe", "Ue", "ae", "oe", "ue", "ss")
For l = 0 To 6
With r.Find
.Text = s1(l)
.Replacement.Text = s2(l)
.MatchCase = True
.Execute Replace:=wdReplaceAll
End With
Next
End Sub
--
Gruß
Helmut Weber, MVP WordVBA
"red.sys" & chr$(64) & "t-online.de"
Win XP, Office 2003
Loading...