Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

Hex in Dez mit großen Zahlen

Hex in Dez mit großen Zahlen
06.04.2020 13:07:48
Conrad
Hallo,
ich versuche HEX Werte in dezimale Stellen umzuwandeln, die HEX Werte sind allerdings 14 Stellen lang.
Da ich keinerlei Erfahrung in VBA habe würde ich mich über etwas Hilfe hier freuen.
Beste Grüße
Conrad

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: im Arbeitsblatt
06.04.2020 13:15:08
Fennek
Hallo,
teste zuerst, ob die Arbeitsblatt-Funktion funktioniert. Falls ja, geht in VBA WorsheetFunction....
mfg
AW: im Arbeitsblatt
06.04.2020 13:21:45
Conrad
Hallo,
also Visual Basic kann ich zumindest öffnen falls das die Frage war?
AW: etwas ausführlicher
06.04.2020 13:39:08
Fennek
Hallo,
da ich mich am Wochenende mit 1024 bit Zahlen herumgeschlagen habe, kamen mir "bloss" 14 Stellen eher wenig vor.
Wenn in A1: a1b2c3e4f512
Formel in A2: =decimal(A1;16)
in VBA wäre &Ha1b2c3
aber 14 Stellen sind zuviel.
In Powershell geht $Hx = 0xa1b2c3e4f512
(oder Python)
Kann man die Zahl aufteilen (/256)?
AW: etwas ausführlicher
06.04.2020 13:51:32
Conrad
Ich kann die Zahlen leider nicht aufteilen.
Wenn in A1: a1b2c3e4f512
Formel in A2: =decimal(A1;16)
ist mein Ergebnis 1,77789E+14,
Anzeige
AW: Entweder …
06.04.2020 13:32:19
Conrad
Die Lösung aus dem Archiv bringt mir leider nix da die Umrechnung falsch ist. Ich bekomme andere Werte als im Windows Rechner.
Der Windows Rechner gibt mir zwar die korrekten Ergebnisse, aber ich hätte die Umrechnung gerne in einer Excel Liste.
AW: vielleicht
06.04.2020 13:44:23
Fennek
Hx = &Ha1b2c3d4e5f6
H1 = &Ha1b2c3
H2 = &Hd4e5f6
debug.print h1 * h2
prüfe das Ergebnis
Anzeige
AW: vielleicht
06.04.2020 13:49:48
Conrad
Tut mir Leid, ich kann dir gerade nicht folgen?
AW: Entweder …
06.04.2020 14:59:48
Daniel
Hi
Das Problem ist, dass du mit 14-stelligen Hex-Werten Dezimalwerte in der Größenordnung 10^16 bekommst.
Das ist aber mehr, als die Rechengenauigkeit von Excel hergibt, das sind nämlich maximal 15 Dezimalstellen.
Gibst du größere Zahlen ein, werden die letzten Stellen weg gerundet.
Dh bei der Umrechnung im Makro müsste ein Datentyp verwendet werden, der diese Genauigkeit kann, und in Excel müssten die Ergebnisse als Text behandelt werden.
Gruß Daniel
AW: Hex in Dez mit großen Zahlen
06.04.2020 14:02:47
Nepumuk
Hallo Conrad,
teste mal:
Option Explicit

Public Sub Beispiel()
    Dim strHex As String, strSign As String
    Dim lngIndex As Long
    Dim decValue As Variant
    decValue = CDec(decValue)
    strHex = "F0335AF2586204AAA"
    For lngIndex = 1 To Len(strHex)
        strSign = Mid$(strHex, lngIndex, 1)
        Select Case strSign
            Case 0 To 9
                decValue = decValue * 16 + CDbl(strSign)
            Case "A"
                decValue = decValue * 16 + 10
            Case "B"
                decValue = decValue * 16 + 11
            Case "C"
                decValue = decValue * 16 + 12
            Case "D"
                decValue = decValue * 16 + 13
            Case "E"
                decValue = decValue * 16 + 14
            Case "F"
                decValue = decValue * 16 + 15
        End Select
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Hex in Dez mit großen Zahlen
06.04.2020 14:13:19
Conrad
Moin,
vielen Dank erstmal.
Aber wie genau kann ich das denn ausführen? Hab jetzt vba geöffnet es dort eingetragen und die Excel-Liste mit Makros gespeichert.
Wie genau kann ich es jetzt testen?
Danke!
AW: Hex in Dez mit großen Zahlen
06.04.2020 14:15:10
Nepumuk
Hallo Conrad,
als Funktion die du in deiner Mappe einsetzen kannst:
 AB
280335AF258620436085262724915716
380335AF2585F0436085262724914948

ZelleFormel
B2=HexInDec(A2)
B3=HexInDec(A3)

Option Explicit

Public Function HexInDec(ByVal pvstrHex As String) As String
    Dim strSign As String
    Dim lngIndex As Long
    Dim decValue As Variant
    decValue = CDec(decValue)
    For lngIndex = 1 To Len(pvstrHex)
        strSign = Mid$(pvstrHex, lngIndex, 1)
        Select Case strSign
            Case 0 To 9
                decValue = decValue * 16 + CDbl(strSign)
            Case "A"
                decValue = decValue * 16 + 10
            Case "B"
                decValue = decValue * 16 + 11
            Case "C"
                decValue = decValue * 16 + 12
            Case "D"
                decValue = decValue * 16 + 13
            Case "E"
                decValue = decValue * 16 + 14
            Case "F"
                decValue = decValue * 16 + 15
        End Select
    Next
    HexInDec = CStr(decValue)
End Function

Gruß
Nepumuk
Anzeige
AW: Hex in Dez mit großen Zahlen
06.04.2020 14:24:07
Conrad
okay.
Userbild
Hier mal als Screenshot mein Ergebnis, also irgendwas läuft wohl verkehrt :(
AW: Hex in Dez mit großen Zahlen
06.04.2020 14:41:16
Nepumuk
Hallo Conrad,
du musst die Function aus meinem letzten Post benutzen und in der Tabelle die Schreibweise beachten.
Gruß
Nepumuk
AW: Hex in Dez mit großen Zahlen
06.04.2020 15:20:29
Conrad
Wahnsinn!
Es funktioniert, geil!
Dankeschön!

269 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige