Excel VBA - Wert in Hex mit führenden Nullen

OP #7401331
Lesenswert?
• ▲
▼

Abend zusammen,

Excel und VBA ist gar nicht mein Bereich, jedoch benötige ich es zur Zeit und hab mich heute ein wenig eingelesen, doch die Feinheiten hab ich noch net drauf.

Auf folgendes Problem, habe ich noch nichts gefunden:

[Bild: excel.png]

1
Sub dez_to_hex()
2
    Dim x As Byte
3
        
4
    x = Cells(2, 1).Value
5
    Cells(2, 2).Value = Hex(x)
6
End Sub

Ich habe ein Byte. Nun möchte ich diese Byte in einer Zelle ausgeben, als HEX Wert (mit führenden Nullen, hier mit einer 0, also "0A").

Die Ausgabe ansich funktioniert, jedoch bekomme ich die 0 nicht davor. Habe da leider zuwenig Ahnung von VBA, bzgl. Formatierung und habe auch nichts gutes gefunden, was zufriedenstellend wäre.

Wenn ich in dem Excel Dokument ohne VBA das versuche, kann ich das nutzen, z.B.:

1
=DEZINHEX(10;2)

Das ergibt 2 Stellen.

Geht das in der VBA Programmierung etwa nicht?

Angehängte Dateien:
OP #7401549
Lesenswert?
• ▲
▼

Jems schrieb:

Worksheets("Sheet1").Range("B2").Formula = "="0x"&DEZINHEX(A2;2)"

Hans-Georg L. schrieb:

=DEZINHEX(Zahl;Stellen) =DEZINHEX(10;8) -> 0000000A

Das ist ja das Problem, dass er im Code Editor DEZINHEX nicht kennt.

Frank O. schrieb:

Public Function dez_to_hex(ByVal wert As LongLong, ByVal stellen As Byte) As String Dim l As Byte dez_to_hex = Hex(wert) l = Len(dez_to_hex) If l < stellen Then dez_to_hex = String$(stellen - l, "0") + dez_to_hex End Function

Das funktioniert, Danke ;)

Trotzdem würde ich gerne wissen, warum ich im Code nicht die gleichen "Funktionen" nutzen kann, die man sonst direkt in Excel nutzt? z.B.:

  • DEZINHEX()
  • BITRVERSCHIEB()

auch wenn man Bit Shift im Code ja eleganter lösen kann.

#7401570
Lesenswert?
• ▲
▼

Adam P. schrieb im Beitrag #7401549: ...

Trotzdem würde ich gerne wissen, warum ich im Code nicht die gleichen "Funktionen" nutzen kann, die man sonst direkt in Excel nutzt? z.B.:

  • DEZINHEX()
  • BITRVERSCHIEB()

auch wenn man Bit Shift im Code ja eleganter lösen kann.

Vermutlich, weil VBA die internationale Schreibweise der Funktionen nutzt. siehe https://de.excel-translator.de/dezinhex/ oder https://www.excelfunctions.eu/DEZINHEX/German-English --> DEZINHEX (de) wird zu DEC2HEX (en) und BITRVERSCHIEB -> BITRSHIFT

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.