Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
684to688
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
684to688
684to688
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Konvertierung in Hexadezimal

Konvertierung in Hexadezimal
24.10.2005 14:53:21
Thomas
Guten Nachmittag!
ich möchte im VBA Zahlen in Hexadezimal konvertieren.
die angebotene Funktion hex() liefert aber nur bis 2^31-1 einen Wert.
Die Zahlen die ich konvertieren möchte sind aber größer!
Gibts da eine einfache Lösung?
Oder hat jemand einen Code um das zu umgehen?
Vielen Dank
Thomas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Konvertierung in Hexadezimal
24.10.2005 15:08:11
MichaV
Hallo,
DeineHexZahl=Hex(DeineGroßeZahl-2^31-1)+Hex(2^31-1)
hex(2^31+10-2^31-1)+hex(2^31-1)=97FFFFFFF
Gruss- Micha
PS: Rückmeldung wäre nett.
Halt, das funzt nich - OFFEN
24.10.2005 15:15:52
MichaV
Hallo
sorry, war Blödsinn. Frage wieder offen.
Gruss- Micha
PS:
hex(1)+hex(1)=11
hex(2)=2
AW: Konvertierung in Hexadezimal
24.10.2005 15:31:27
MichaV
Hallo,
VBA kann offensichtlich nur Hex- Zahlen bis hex(2^31-1) verarbeiten. Weil:
hex(2^31-1)= 7FFFFFFF, und &H7FFFFFFF+1 bringt einen Überlauf- Fehler. Wenn Du "manuell" eins addierst kommest Du auf 80000000.
Wenn Du im Direktfenster &H80000000 eingibst kommt -2147483648 raus, es geht also im negativen Zahlenbereich weiter. &H80000001 ist in VBA -2147483647. Darum gibts einen Fehler, Du kannst ab 7FFFFFFF in VBA nicht mehr addieren.
Eine reine Excel- Lösung bietet http://www.excelformeln.de/formeln.html?welcher=262 , das müsste man in VBA umbasteln.
Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Konvertierung in Hexadezimal
24.10.2005 16:37:34
Thomas
Hi.
Danke für die Antwort...
...ich hab es komplett neu programmiert...Division durch 16, etc...
genau das gleiche Problem gibts bei der mod funktion... auch die hab ich neu programmiert.
lg
Thomas
AW: Konvertierung in Hexadezimal
24.10.2005 17:27:35
MichaV
Hallo,
na dann lass doch mal sehen, interessiert andere vielleicht auch.
Gruß- Micha
AW: Konvertierung in Hexadezimal
24.10.2005 18:11:35
Thomas
dec2Hex liefert die umwandlung einer Zahl von -922.337.203.685.477,5808 bis 922.337.203.685.477,5807.
z.B.: hex(2403489159)= 8F425587
modular liefert den rest:
modular(2403489159;16)=7
lg
Thomas
---------------------
Function Dec2Hex(ByVal sIpt As Currency) As String

'Dec2Hex = Hex(sIpt)

Dim iWert As Currency
Dim temp As Currency
Dim str As String
Dim i As Long
Dim pos As Integer
Dim binWert() As String
iWert = sIpt
i = 0

Do
temp = iWert / 16
pos = InStr(temp, ".")
If pos > 0 Then
temp = Left(temp, pos - 1)
End If
pos = modular(iWert, 16)
ReDim Preserve binWert(i)
binWert(i) = Ziffer2Hex(pos)
i = i + 1
iWert = temp
Loop While temp > 0
For i = UBound(binWert) To 0 Step -1
str = str + CStr(binWert(i))
Next
Dec2Hex = str
End Function

Private Function Ziffer2Hex(i As Integer) As String
Select Case i
Case 0 To 9
Ziffer2Hex = CStr(i)
Case 10:
Ziffer2Hex = "A"
Case 11:
Ziffer2Hex = "B"
Case 12:
Ziffer2Hex = "C"
Case 13:
Ziffer2Hex = "D"
Case 14:
Ziffer2Hex = "E"
Case 15:
Ziffer2Hex = "F"
End Select
End Function

Function modular(a As Currency, z As Currency) As Currency
Dim x As Double
x = Fix(a / z)
modular = a - x * z
End Function
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige