Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro mit großen Zahlen

Makro mit großen Zahlen
15.07.2016 10:11:51
Alifa
Hallo,
wie kann man mit Zahlen, die mehr als 15 Ziffern beinhalten rechnen? 20 stellige Zahlen, die mit 2 beginnen und mit 5 aufhören sollen mit 1.8 multipliziert und dazu 32 addiert werden. x=z*1.8+32. Das Ergebnis wird anschließend auf eine Bedingung geprüft. Ist das mit VBA überhaupt möglich?
Gruß, Alifa

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro mit großen Zahlen
15.07.2016 10:17:56
Christian
Schau mal hier:
https://msdn.microsoft.com/de-de/library/office/gg251528.aspx
Rechnen mit großen Zahlen
17.07.2016 17:03:27
Michael
Hi,
zum Rechnen mit sehr großen Zahlen eignet sich der "Karatsuba"-Algorithmus.
In mehreren Schritten, die je aufeinander aufbauen, wird die Addition, Subtraktion und Multiplikation hier
http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-addition/
vorgestellt.
Lege ein neues Modul (in VBA: Einfügen/Modul) an, kopiere die 3 Makros rein und rufe die Multiplikation mit 1,8 dann z.B. in G2 auf mit =mlfhMultiply(E2;18) (wenn der Wert in E2 steht).
Die Multiplikation erfolgt ohne Nachkommastellen, weil wir ja 18 statt 1,8 verwendet haben: mit der 5 am Ende kommt sowieso immer ein ganzzahliger Wert heraus, so daß die letzte Stelle eine 0 ist. Weil die erste Ziffer eine 2 ist, kann das Ergebnis auch nicht mehr als 20 Stellen haben, so daß Du dann in einer weiteren Zelle die 0 abschneiden kannst, z.B. in J2: =LINKS(G2;20).
Dazu addierst Du dann die 32: =mlfhAdd(J2;32)
Die Funktionen laufen nicht vom Fleck weg, d.h. VBA meckert die nicht vorhandene Variable mlcpNumbersPrecision an (zumindest, wenn Du option explicit verwendest, was Du auch unbedingt tun solltest). Die entspricht der vorhandenen Rechengenauigkeit und ist "frei wählbar": ich habe zum Testen eine entsprechende Konstante vorangestellt, gefolgt von den drei reinkopierten Functions (übrigens enthält die Anzeige auf der Seite Zeilennummern, die so nicht sinnvoll kopiert werden können: dafür ist je direkt über dem Code ein link "codefenster", bei dem der Code ohne Nummern gezeigt wird):
Option Explicit
Const mlcpNumbersPrecision = 10
' Add two numbers...
Private Function mlfhAdd(x As String, y As String) As String
' usw., usf.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige