Makro läuft nicht
11.08.2008 17:39:00
alifa
obwohl nur zehn Ziffern, kommt die Meldung: Überlauf. Habe schon alles versucht, Currency, Double. Long hört bei mir bei 2147483467 auf. Decimal nimmt er irgendwie nicht an. Kann jemand helfen?
Sub Alifa()
Dim a(0 To 9) As Byte, i As Byte, t As Single
For i = 0 To 9
a(i) = i
Next i
t = Timer
Call Permutation(a, 0, 9)
MsgBox "Fertig nach " & Round(Timer - t, 1) & " Sekunden"
End Sub
Sub Permutation(ByVal a, k As Byte, n As Byte)
Dim i As Byte, x As Byte
If k = n Then
Call Auswerten(a)
Else
For i = k To n
x = a(i)
a(i) = a(k)
a(k) = x
Call Permutation(a, k + 1, n)
Next
End If
End Sub
Sub Auswerten(ByVal a)
Dim w As Double
w = (a(0) & a(1) & a(2) & a(3) & a(4) & a(5) & a(6) & a(7) & a(8) & a(9))
If w Mod 7 = 0 And _
Mid(w, 1, 8) Mod 7 = 0 Or Mid(w, 2, 8) Mod 7 = 0 And Mid(w, 1, 7) Mod 7 = 0 Or _
Mid(w, 2, 7) Mod 7 = 0 Or Mid(w, 3, 7) Mod 7 = 0 And Mid(w, 1, 6) Mod 7 = 0 Or _
Mid(w, 2, 6) Mod 7 = 0 Or Mid(w, 3, 6) Mod 7 = 0 Or Mid(w, 4, 6) Mod 7 = 0 And _
Mid(w, 1, 5) Mod 7 = 0 Or Mid(w, 2, 5) Mod 7 = 0 Or Mid(w, 3, 5) Mod 7 = 0 Or _
Mid(w, 4, 5) Mod 7 = 0 Or Mid(w, 5, 5) Mod 7 = 0 And Mid(w, 1, 4) Mod 7 = 0 Or _
Mid(w, 2, 4) Mod 7 = 0 Or Mid(w, 3, 4) Mod 7 = 0 Or Mid(w, 4, 4) Mod 7 = 0 Or _
Mid(w, 5, 4) Mod 7 = 0 Or Mid(w, 6, 4) Mod 7 = 0 And Mid(w, 1, 3) Mod 7 = 0 Or _
Mid(w, 2, 3) Mod 7 = 0 Or Mid(w, 3, 3) Mod 7 = 0 Or Mid(w, 4, 3) Mod 7 = 0 Or _
Mid(w, 5, 3) Mod 7 = 0 Or Mid(w, 6, 3) Mod 7 = 0 And _
Mid(w, 7, 3) Mod 7 = 0 Then
Cells(r + 1, 1) = a(0) & a(1) & a(2) & a(3) & a(4) & a(5) & a(6) & a(7) _
& a(8) & a(9)
r = r + 1
End If
End Sub
kurz das Problem. Gesucht eine zehn- stellige Zahl, die alle Ziffern von 0 bis 9 genau einmal beinhaltet. Aus dieser Zahl sollen 2,3,4,5,6,7,8,9-stellige Zahlen(zusammenhängend) gebildet werden können. Alle teilbar durch 7.
Gruß, alifa