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

VBA Definition einer Farb-Varbiable in h

VBA Definition einer Farb-Varbiable in h
04.05.2023 08:50:25
Joschi Witchcraft

Hallo Forum.

Ich möchte mir eigene Variablen für häufig genutzte Farben definieren. Entsprechend verschiedenen Beispielen im Internet habe ich das als Hex-Variable definiert. Doch wenn ich diese Variable benutze, erscheint eine ganz andere Farbe.

Mein Code:
Sub Farbe()
Const UVbBraun As Long = &H808080
Const UVbOrange1 As Long = 42495
Const UVbOrange2 As Long = &HFFA5
Debug.Print "UvbBraun " & Hex(UVbBraun)
Debug.Print "UVbOrange1 " & Hex(UVbOrange1)
Debug.Print "UVbOrange2 " & Hex(UVbOrange2)
Cells(1, 1).Interior.Color = UVbOrange1
Cells(1, 3).Interior.Color = RGB(255, 165, 0)
Cells(3, 1).Interior.Color = UVbOrange2
Cells(3, 3).Interior.Color = RGB(255, 165, 0)
Cells(5, 1).Interior.Color = UVbBraun
Cells(5, 3).Interior.Color = RGB(128, 128, 128)
Debug.Print "Cells(1, 1) " & Cells(1, 1).Interior.Color & " " & Hex(Cells(1, 1).Interior.Color)
Debug.Print "Cells(1, 3) " & Cells(1, 3).Interior.Color & " " & Hex(Cells(1, 1).Interior.Color)
Debug.Print "Cells(3, 1) " & Cells(3, 1).Interior.Color & " " & Hex(Cells(3, 1).Interior.Color)
Debug.Print "Cells(3, 3) " & Cells(3, 3).Interior.Color & " " & Hex(Cells(3, 3).Interior.Color)
Debug.Print "Cells(5, 1) " & Cells(5, 1).Interior.Color & " " & Hex(Cells(5, 1).Interior.Color)
Debug.Print "Cells(5, 3) " & Cells(5, 3).Interior.Color & " " & Hex(Cells(5, 3).Interior.Color)
End Sub

Meine Print-Outs:
Cells(1, 1) 42495 A5FF
Cells(1, 3) 42495 A5FF
Cells(3, 1) 16777125 FFFFA5
Cells(3, 3) 42495 A5FF
Cells(5, 1) 8421504 808080
Cells(5, 3) 8421504 808080

Meine Frage:

Was ist an der Definition "UVbOrange2" falsch?

Gruß Joschi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Definition einer Farb-Varbiable in h
04.05.2023 09:58:45
Rudi Maintaire
Hallo,
warum tust du dir das an?
42495 ist nicht FFA5 sondern A5FF. Außerdem solltest du bei Hex-Zahlen, die nicht 6-stellig sind, ein & anhängen.

Const UVbOrange2 As Long = &HA5FF&

Gruß
Rudi


AW: VBA Definition einer Farb-Varbiable in h
04.05.2023 10:11:11
Joschi Witchcraft
Hallo Rudi.

Danke. Jetzt funktioniert es.

Gruß Joschi


AW: VBA Definition einer Farb-Varbiable in h
04.05.2023 16:04:04
Joschi Witchcraft
Ich möchte noch eines nachtragen:

auf meiner Suche im Internet habe ich eine Tabelle gefunden, in der die Farbe "Orange" wir folgt beschrieben war:
#ffa500
RGB rgb(255,165,0)

Daraufhin habe ich meine Konstante mit &HFFA500 definiert. Doch ohne das fehlende "&" am Ende wurden die Nullen rechts entfernt. Außerdem sind die 3 in RBG genannten Werte in umgekehrter Reihenfolge anzugeben; das "255" ("FF") gehört ans Ende und nicht an den Anfang.

Sehr verwirrend. Doch jetzt erkannt.

Vieleicht hilft mein Nachtrag anderen Anwendern mit demselben Problem.

Gruß Joschi


Anzeige
AW: VBA Definition einer Farb-Varbiable in h
04.05.2023 16:14:06
Daniel
Hi
in Excel würde ich für solche Sachen ein zusätzliches Tabellenblatt anlegen, dort die Zellen einfärben und dann zu Beginn des Makros die Farbwerte in die entsprechenden Variablen einlesen (mit Konstanten gehts leider nicht)
Hat den Vorteil, dass man sich nicht mit den RGB-Zahlen rumplagen muss, sondern die Farbe einfach auswählen kann.
Außerdem kann man die Farben dann ändern, ohne in den Code eingreifen zu müssen.
Einen Vorteil hätten Konstanten nur, wenn man sie in mehren Makros benötigt, die unabhängig voneinander ausgeführt werden. Dann kann man die Konstanten projektweit gültig anlegen und sie stehen ohne weiteren Aufwand überall zur Verfügung.
Die Variablen kann man zwar auch projektweit gültig anlegen, aber es muss sichergestellt sein, dass der Code zur Befüllung einmal ausgeführt wird, bevor sie das erste mal verwendet werden.
Gruß Daniel


Anzeige
mit Farbe spielen
04.05.2023 16:56:48
Yal
Falls es dich behilflich sein kann:

Function RGB_Einzeln(ByVal Farbe As Long)
Dim Arr(2) As Integer
'Teilung in Rot-Grün-Blau
    Arr(0) = Farbe And 255
    Arr(1) = (Farbe \ 256) And 255
    Arr(2) = (Farbe \ 65536) And 255
    RGB_Einzeln = Arr
End Function

Sub test()
Dim A, E
    A = RGB_Einzeln(42495)
    For Each E In A
        Debug.Print E, Hex(E)
    Next
    Debug.Print RGB(A(0), A(1), A(2))
End Sub
VG
Yal

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige