Merkwürdiges gewürdigt
08.11.2013 21:26:34
Erich
Hi Alifa,
zitat Luc:
"Merkwürdig ist es eh, aber das war ja auch nicht anders zu erwarten. ;-)"
Dem kann ich mich nur anschließen. Wir kennen doch unsere Pappenheimer... ;-)
Hier habe ich mal etwas gebastelt:
Option Explicit
Sub aTest()
Dim zz As Long
For zz = 6 To Cells(Rows.Count, 1).End(xlUp).Row
Cells(zz, 3) = Pruef(Cells(zz, 1), Cells(zz, 2))
Next zz
End Sub
Function Pruef(ByVal qq As String, SQ As String)
' Parameter: qq ist eine neunstellige Zahl aus allen Ziffern 1 bis 9
' SQ ist ein String mit 0 bis 4 Sequenzen, getrennt duch Komma
' Bsp.: x = Pruef("945873216", "45,87,321")
' x = Pruef("945873216", "")
Dim arS, tt As Long, ii As Long, pp As Long, pv As Long
arS = Split(SQ, ",")
For ii = 0 To UBound(arS)
pp = InStr(qq, arS(ii))
If pp = 0 Then Pruef = "Sequenz " & arS(ii) & " fehlt": Exit Function
If pp 0 Then Exit For
Next ii
If ii > UBound(arS) Then Pruef = "Sequenz " & Mid(qq, tt - 1, 2) & _
" nicht vorgegeben": Exit Function
End If
Next tt
Pruef = True
End Function
Da kommt das hier raus:
| A | B | C |
1 | 912586437 | | Sequenz 12 nicht vorgegeben |
2 | 912576834 | 12,76 | Sequenz 34 nicht vorgegeben |
3 | 945873216 | 87,45 | Sequenz 45 zu weit links |
4 | 945873216 | 45,87,321 | WAHR |
5 | 975318642 | 78 | Sequenz 78 fehlt |
6 | 123975864 | 123,78 | Sequenz 78 fehlt |
7 | 975318642 | | WAHR |
8 | 945873216 | 45,87,32 | Sequenz 21 nicht vorgegeben |
Die Fehlerhinweise in Sp. C kann man auch einfach im Code durch False ersetzen.
Oder man deklariert die Fkt. Pruef als Boolean, dann kommt automatisch False raus mit dem Exit.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich