Im Wesentlichen brauchst du eine Funktion mit zwei Parametern, welche benachbarte Zeichen darstellen.
z ... Zahl 1-7
x ... "x"
Die Kombinationen zx, xz und xx ergeben jeweils True.
Die Kombination zz ergibt ausschließlich True wenn das zweite z größer dem ersten z ist.
Wandere mit einer Zählschleife vom Index 1 bis Index 9 durch die Zeichen der Zeichenkette (normale Schrittweite, also 1). Und rufe jedesmal die besagte Funktion mit der oben genannten Logik auf. Beim Index = 9 setzt du den zweiten Funktionsparameter einfach auf "x". Dabei kannst du auch noch das Zeichen beim aktuellen Index prüfen ob es ein "x" ist - oder du nimmst IsNumeric() dafür. Die Anzahl von "x" muss am Ende den Wert 2 haben.
Auf diese Weise kannst du sogar noch den Grund einer fehlgeschlagenen Validierung mit ausgeben lassen (z.B: "Dublette vorhanden @Index = %i").
Dubletten erkennst du übrigens so:
If InStr(Left$(Expression, Index - 1), Mid$(Expression, Index, 1)) Then
Grüße
|