AW: Vorgabe wie die Zahlen geschrieben werden müssen
30.01.2009 07:54:00
Harald
Hallo Ralf,
quick and dirty: alle Leeerzeichen im betreffenden Bereich löschen, dann kannst Du unabhängig vom Eingabeformat löschen.
Nicht ganz so dirty:
Lass den benutzer eingeben, was er will. Setze Dir eine Hilfsspalte, z.B. rechts von der Eingabespalte. In die Hilfsspalte gibst Du eine selbstdefinierte Funktion ein. Z.B. Eingabe in Spalte A, Hilfsspalte B, dann in die Zellen von B eingeben:
in B1: =normalisiere(A1)
Die Funktion normalisiere() gibt es nicht, musst Du selbst definieren, z.B. so:
Function normalisiere(ByVal x As Variant) As String
Dim tmp As String
Dim i As Integer
' erst mal alle Leerzeichen löschen
tmp = ""
For i = 1 To Len(x)
If Left(x, 1) " " Then
tmp = tmp & Left(x, 1)
End If
x = Right(x, Len(x) - 1)
Next
' Optional: Plausibilitätsprüfung auf ausreichende Stellenzahl der Eingabe hierher
'Ausgabe formatieren
normalisiere = Left(tmp, 3) & " " & Mid(tmp, 4, 1) & " " & Mid(tmp, 5, 2) & " " & Right(tmp, 3)
End Function
Diese Implementierung erwartet, dass alle relevanten Stellen eingegeben werden (Plausibilitätsprüfung fehlt), es ist aber egal, wo Leerzeichen stehen, oder nicht.
Die feine Lösung wäre, die Eingabe direkt per Ereignis (z.B. Worksheet_Change) abzufangen und auf korrrekte Formatierung zu prüfen. Das kriege ich jetzt aber nicht auf die Schnelle gebacken.
Gruß Harald