wie kann man mit einem Makro Mod 2, Mod 3..bis Mod 16 einer 16 stelligen Zahl prüfen? Wie prüft man ob die ersten 14 Ziffern der Zahl mit 13 restlos teilbar ist? Das Problem ist die Größe der Zahl.
Danke in Voraus, alifa
If (x/y) = INT(x/y) Then
den Rest berechnest du dann so
... = x - y * Int(x/y)
dim x as Variant
x = CDec("1234567890123456")
if (x / 13) = int(x / 13) then
msgbox "Durch 13 teilbar"
Else
msgbox "nicht durch 13 teilbar"
end if
die ersten 14 Stellen einer Zahl bekommst du so:
=CDbl(Left(Format(x, "0"), 14))
Function xMod(Dividend, Divisor)
Dim dd, dv As Variant
dd = CDec(Dividend): dv = CDec(Divisor)
xMod = CLng(dd - dv * Fix(dd / dv))
End Function
Eine ZellFml sähe dann so aus: =xMod(A1;16) für eine (16stellige) TextZahl in A1 (remainder 16).
RPP63
Function BigModulo&(Basis&, Exponent&, ModOp&)
Dim i&
BigModulo = 1
For i = 1 To Exponent
BigModulo = (BigModulo * Basis) Mod ModOp
Next
End Function
Bei Bedarf kann ich auch ein xlsx mit dem Formel-Äquivalent hochladen.Function BigModulo(TextZahl As String, Divisor As Double) As Double
Dim i As Long
Dim d As Double
For i = 1 To Len(TextZahl)
BigModulo = Val(Rest & Mid(TextZahl, i, 1))
If BigModulo > Divisor Then
BigModulo = BigModulo - Divisor * Int(Rest / Divisor)
End If
Next
End Function
Gruß Daniel