Hallo Wissende,
hier war doch die Anfrage wegen 40 Nachkommastellen bei OO.
Gut, 40 sind bei Excel indiskutabel, weil sowieso nur 15 signifikante Ziffern gespeichert werde, Rest sind Nullen.
Jetzt habe ich da was gebastelt, was beliebig lange Zahlen als String multipliziert und als Ergebnis ein String ist der beliebig viele Nachkommastellen hat.
Problem ist nur, wie kann ich das, also die Vba-Ergebnisse, überprüfen?
Hat denn jemand Zugriff auf einen Großrechner o.ä. damit ich weiß das
3581732491706,00171274906819240648827136
mal
3581732491706,00171274906819240648827136
auch wirklich
12828807642142483628008411,3678385348385296289113712848697989138769932409962496
ergeben.
Dankeschön wenn das jmd mal für mich rechnen ließe 
Ansonsten, hier ist die Datei:
http://www.hostarea.de/server-12/Dezember-f0ea37c6a7…
Sie hat nachfolgenden Code.
Im Blatt1 sieht es so aus:
Tabelle:
F:\[Malnehmen.xls]!Tabelle1
│ A │ B │
──┼───────────────────────────┼─────────────────────────────────┤
1 │ 3456,78945600000000000000 │ 1892546,56262561000000000000 │
2 │ 547,48678990000000000000 │ 1892546,5626256072944 │
3 │ 0,45688933339939300000 │ 0,75270626136006800000 │
4 │ 1,64745859956876000000 │ 0,75270626136006827649464576268 │
──┴───────────────────────────┴─────────────────────────────────┘
Benutzte Formeln:
B1: =A1\*A2
B2: =Mal(A1;A2)
B3: =A3\*A4
B4: =Mal(A3;A4)
Tabelle:
F:\[Malnehmen.xls]!Tabelle1
│ C │
──┼──────────────────────────────────────────────────────────────┤
1 │ 3581732491706,00000000000000000000 │
2 │ 3581732491706,00171274906819240648827136 │
3 │ 0,56656671589065200000 │
4 │ 0,5665667158906514133396471608305369492024599098972788807824 │
──┴──────────────────────────────────────────────────────────────┘
Benutzte Formeln:
C1: =B1\*B1
C2: =Mal(B2;B2)
C3: =B3\*B3
C4: =Mal(B4;B4)
usw. für noch 2 Spalten
Mit den Kommastellen scheint noch der Wurm im Code zu sein, aber die Ziffernfolgen sehen okay aus.
Gruß
Reinhard
Der code von Modul1:
Option Explicit
'
Function Mal(ByVal a, ByVal b) As String
Dim x, y, n, nn, Komma
x = CStr(Application.WorksheetFunction.Substitute(a, ",", ""))
x = CStr(Application.WorksheetFunction.Substitute(x, ".", ""))
x = CStr(Application.WorksheetFunction.Substitute(x, "'", ""))
y = CStr(b)
y = CStr(Application.WorksheetFunction.Substitute(y, ",", ""))
y = CStr(Application.WorksheetFunction.Substitute(y, ".", ""))
Mal = String(Len(x), "0")
For n = 1 To Len(y)
For nn = 1 To Asc(Mid(y, n, 1)) - 48
Mal = Plus(Mal, x)
Next nn
If Len(y) \> 1 Then Mal = Mal & "0"
Next n
Mal = Left(Mal, Len(Mal) - 1) 'letzte 0 weg
Komma = Len(a) - InStr(a, ",") + Len(b) - InStr(b, ",")
Mal = Left(Mal, Len(Mal) - Komma) & "," & Mid(Mal, Len(Mal) - Komma + 1)
End Function
'
Function Plus(ByVal a As String, ByVal b As String)
Dim n, Merk, P
If Len(a) \> Len(b) Then b = String(Len(a) - Len(b), "0") & b
If Len(b) \> Len(a) Then a = String(Len(b) - Len(a), "0") & b
For n = Len(a) To 1 Step -1
P = Asc(Mid(a, n, 1)) + Asc(Mid(b, n, 1)) - 96 + Merk
If P \>= 10 Then
P = Right(P, 1)
Merk = 1
Else
Merk = 0
End If
Plus = CStr(P) & Plus
Next n
If Merk = 1 Then Plus = "1" & Plus
End Function