Esta Función te cuenta los Caracteres especiales.
Llamala desde el propio Text Box por ejemplo en el BeforeUpdate.
De acerdo al Resultado tu decides que hacer:
Public Function CaracteresEspeciales(ByVal Texto As String) As String
Dim Cadenas() As String
Dim BytCaracter As Byte
Dim I As Long, K As Long
Dim StrPalabra As String
Dim CarCorrectos As Integer, CarIncorrectos As Integer, CarTotales As Integer
CarCorrectos = 0
CarIncorrectos = 0
CarTotales = 0
Cadenas = Split(Texto)
For I = 0 To UBound(Cadenas)
StrPalabra = Cadenas(I)
For K = 1 To Len(StrPalabra)
BytCaracter = Asc(Mid(StrPalabra, K, 1))
Select Case BytCaracter
'Si el carácter es una letra en Mayúscla o Minúscula o Numero
'Solo Recodatorio >> Mayúsculas son: 65 To 90,192 To 197,199 To 221. Numeros son ; 48 To 57
Case 48 To 57, 65 To 90, 97 To 122
CarCorrectos = CarCorrectos + 1
Case Else
CarIncorrectos = CarIncorrectos + 1
End Select
Next K
Next I
CarTotales = CarCorrectos + CarIncorrectos
MsgBox "Hay " & CarTotales & vbCrLf & CarCorrectos & " Caracteres Correctos" & vbCrLf & CarIncorrectos & " CaracteresIncorrectos", vbInformation, "RECUENTO CARACTERES"
End Function
Un saludo
Jacinto