Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ziffernkette prüfen

Forumthread: Ziffernkette prüfen

Ziffernkette prüfen
Alifa
Hallo,
ich möchte folgendes mittels VBA-Code prüfen:
Zwischen den einzelnen Ziffern einer zehnstelligen Zahl(Ziffernkette) mit den Ziffern 1 bis 7 sollen mindestens so viele andere Ziffern stehen, wie der Wert aussagt. Beispiel:1213241213 ist eine "wahre" Zahl. Dagegen ist 2437454122 eine "falsche" Zahl. "Wahr" ist auch 7421324537. Es liegen keine gleichen Ziffern näher aneinander, als ihr Wert aussagt. Kann mir jemand helfen?
Gruß, Alifa
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Ziffernkette prüfen
18.01.2012 20:22:30
Erich
Hi Erhard,
probier mal

Option Explicit
Function Ziffernkette(TT As String) As Boolean
Dim ii As Integer, ZZ As String * 1
For ii = 1 To Len(TT) - 1
ZZ = Mid(TT, ii, 1)
If InStr(Mid(TT, ii + 1, ZZ), ZZ) > 0 Then Exit Function
Next ii
Ziffernkette = True
End Function
Das kannst du im Tabelenblatt aufrufen:
 AB
11213241213WAHR
22437454122FALSCH
37421324537WAHR

Formeln der Tabelle
ZelleFormel
B1=Ziffernkette(A1)
B2=Ziffernkette(A2)
B3=Ziffernkette(A3)

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: Ziffernkette prüfen
19.01.2012 07:53:16
Alifa
Guten Morgen Erich,
die Funktion funktioniert prima. Eigentlich müsste das auch mit Array funktionieren. Also die ganzen Ziffern der Funktion als Array übergeben.
Vielen Dank!
Erhard
Ziffernfolge (Array) prüfen
19.01.2012 08:59:15
Erich
Hi Erhard,
mit Array ginge das z. B. so:

Option Explicit
Sub aaaTst()
Dim zz As Long, cc As Long, arrQ(1 To 10) As Byte
For zz = 1 To 3
For cc = 1 To 10
arrQ(cc) = Cells(zz, cc)
Next cc
Cells(zz, 11) = Ziffernfolge(arrQ)
Next zz
End Sub
Function Ziffernfolge(arrZ() As Byte) As Boolean
Dim ii As Byte, jj As Byte
For ii = LBound(arrZ) To UBound(arrZ) - 1
For jj = ii + 1 To Application.Min(ii + arrZ(ii), UBound(arrZ))
If arrZ(jj) = arrZ(ii) Then Exit Function
Next jj
Next ii
Ziffernfolge = True
End Function
Das lief mit diesen Daten:
 ABCDEFGHIJK
11213241213WAHR
22437454122FALSCH
37421324537WAHR

Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige