ich habe in bestimmten Zellen Text, der keine Sonderzeichen enthalten darf (bei mir sind die Zellen als Name "MonatText" deklariert). Dazu hab ich mir von einem alten Forum von euch einen passenden Code kopiert. Er funktioniert wunderbar. Hier werden die Sonderzeichen gelöscht.
Jetzt müsste ich aber statt dem Löschen des Zeichens das falsche Zeichen durch einen Unterstrich ersetzen. Leider funktioniert das bei mir nicht (ich habe in der Zeile .Replace "einfach" statt "" --> "_" geschrieben. Könnt ihr mir helfen?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RegEx As Object
Dim strText As String
Dim cell As Range
' Prüfe, ob die Änderung im Bereich MonatText liegt
If Not Intersect(Me.Range("MonatText"), Target) Is Nothing Then
Set RegEx = CreateObject("Vbscript.Regexp")
' Iteriere über alle betroffenen Zellen
For Each cell In Intersect(Me.Range("MonatText"), Target)
strText = cell.Value
With RegEx
.IgnoreCase = True
.MultiLine = True
.Pattern = "[^0-9 a-zäöüß\-_]" ' Erlaubte Zeichen
.Global = True
strText = .Replace(strText, "") ' Ersetze fehlerhafte Zeichen durch Leerzeichen
End With
If Len(strText) Len(cell.Value) Then
Application.EnableEvents = False
MsgBox "Es sind keine Sonderzeichen erlaubt." & vbCr & _
"Sonderzeichen werden gelöscht!", vbCritical
cell.Value = strText
Application.EnableEvents = True
End If
Next cell
End If
End Sub
Vielen Dank schon mal!
Christine