Hallo zusammen,
ich möchte in VBA Dezimalzahlen in Hexadezimalzahlen umwandeln und benutze dafür die Funktion hex().
Für kleinere Zahlen funktioniert das auch ganz gut. Allerdings sind die Zahlen die ich umwandeln möchte alle zehnstellig und dann kommt der Fehler 6: Overflow
Hier mal der Code:
Code:
Sub test()Dim color As String
Dim zahl As Double
zahl = 2 ^ 32 - 65536
color = Hex(zahl)
End Sub
Die Variable "zahl" ergibt sich immer aus den Summanden 2^32 und einer negativen Zahl, welche maximal achtstellig ist.
Was mich wundert ist, dass die Variable in einen Überlauf gerät, obwohl double-Variablen ja einen viel größeren Zahlenraum abdecken.
Ich habe schon versucht, die Umrechnung manuell vorzunehmen, da ich dachte es liegt an der "string"-Variablen.
Dafür muss man ja
Code:
dim hex as double
hex = zahl mod 16
rechnen. Aber da tritt der gleiche Fehler auf...
Kann mir jemand helfen?
MfG Robert
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP