Dezimal in Hexadezimal (Converter)

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Neptun.

    Dezimal in Hexadezimal (Converter)

    Hallo,

    ich bin gerade dabei VBA zu lernen und möchte einen Converter in Excel programmieren.
    Dieser kann Dezimalzahlen in Hexadezimalzahlen umwandeln.
    Ich habe auch schon einen code geschrieben (er funktioniert auch, aber es wird jedes Bit in eine eigene Zelle geschrieben. Ich möchte die Wertausgabe in einer Zelle haben):

    Visual Basic-Quellcode

    1. Sub Umrechner()
    2. Range("A9:K10").Value = "" 'Löscht die Zeile A9 bis K10 vor Eingabe eines neuen Wertes'
    3. zahl = Cells(4, 3)
    4. basis = Cells(5, 3)
    5. i = 0 'i ist ein Zähler und nimmt nach jedem neuen Loop i+1 an'
    6. Do Until zahl = 0
    7. zwischenwert = Int(zahl / basis) 'Int= Integer: Zahl wird nicht gerundet, sondern "abgeschnitten'
    8. bit = zahl - zwischenwert * basis
    9. ZahlCode = "0123456789ABCDEF"
    10. Cells(10, 6 - i).Value = Mid(ZahlCode, bit + 1, 1)
    11. Cells(9, 6 - i).Value = "Bit" + CStr(i + 1)
    12. i = i + 1
    13. zahl = zwischenwert
    14. Loop
    15. End Sub

    _____________________

    Ich möchte nun aber meine Hexadez-Zahl in einer Zelle zu stehen haben. Ich habe Stunden investiert um dieses Problem in den Griff zu kriegen, aber ich komme auf keine vernünftige Lösung.
    Könnt ihr mir helfen?

    Gruß at0m

    PS: die Basis entspricht hier natürlich dem Wert 16.

    Edit by der_Kurt:
    Für VBA haben wir hier ein eigenes Unterforum --> Topic verschoben
    Quellcode bitte immer im VB-Tag anzeigen, macht das Ganze übersichtlicher

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „der_Kurt“ ()

    Hallo at0m,
    ich bin gerade dabei VBA zu lernen und möchte einen Converter in Excel programmieren.
    Dieser kann Dezimalzahlen in Hexadezimalzahlen umwandeln.

    Du weisst schon, dass es dafür in VBA die Funktion Hex$ gibt?

    Du musst die einzelnen Stellen in einer Stringvariablen addieren und
    das Ergebnis zum Schluss in eine Zelle schreiben:

    Visual Basic-Quellcode

    1. Ergebnis = Ergebnis & Mid(ZahlCode, bit + 1, 1)

    Übrigens, für die Integerdivision gibt es \ und für Division mit
    Rest gibt es die Mod-Funktion.
    Gruss,

    Neptun