In manchen Spreadsheets ist es sinnvoll, wenn nur internationale Zeichen verwendet werden. Und die (deutschen) Umlaute gehören nun einmal nicht dazu. Es soll die Möglichkeit geschaffen werden, dass bei Eingabe eines Umlauts oder des „ß” eine automatische Umwandlung geschieht. Dieses Vorhaben lässt sich mit einer Prozedur gut realisieren. Hier nun der Code dafür:
Option Explicit
Sub WorkSheet_Change(ByVal Target As Range)
Dim aUmlaute, aUmlErsatz
Dim i As Integer
aUmlaute = Array("Ä", "ä", "Ö", "ö", "Ü", "ü", "ß")
aUmlErsatz = Array("Ae", "ae", "Oe", "oe", "Ue", "ue", "ss")
On Error GoTo ErrorHandler
Application.EnableEvents = False
For i = 0 To 6
Target.Value = Replace(Target, aUmlaute(i), aUmlErsatz(i))
Next i
ErrorHandler:
Application.EnableEvents = True
End Sub
Fügen Sie diese Sub in das Modul des entsprechenden Arbeitsblatts ein. Automatisch wird nun bei jeder Eingabe in eine Zelle geprüft, ob Umlaute oder das „ß” enthalten sind und bei Vorhandensein ersetzt. Soll sich die Ersetzung auf einen definierten Bereich beschränken, dann könnte der Code so aussehen:
Sub WorkSheet_Change(ByVal Target As Range)
Dim aUmlaute, aUmlErsatz
Dim i As Integer
Dim rngNoUmlaut As Range
Set rngNoUmlaut = Range("B2:F20") 'Anpassen
aUmlaute = Array("Ä", "ä", "Ö", "ö", "Ü", "ü", "ß")
aUmlErsatz = Array("Ae", "ae", "Oe", "oe", "Ue", "ue", "ss")
On Error GoTo ErrorHandler
Application.EnableEvents = False
If Not Intersect(Target, rngNoUmlaut) Is Nothing Then
For i = 0 To UBound(aUmlaute)
Target.Value = Replace(Target, aUmlaute(i), aUmlErsatz(i))
Next i
End If
ErrorHandler:
Application.EnableEvents = True
End Sub
Da die zu ersetzenden Zeichen in jeweils einem Array stehen, lässt sich der Code problemlos auch auf andere Sprachen anwenden oder um weitere Zeichen erweitern. In dem Fall (oder auch generell) kann statt der Zeile
For i = 0 To 6
der Code
For i = 0 To UBound(aUmlaute)
verwendet werden. VBA berechnet dann die Größe des Arrays und wendet den korrekten Wert an.
Hinweis: Möchten Sie bereits existierende Tabellen umwandeln? Dann wenden Sie sich vertrauensvoll an mich (G.Mumme@PC-Hilfe-Nord.de), ich helfe Ihnen gerne gegen eine kleine Spende.