Bassel benötigt eine Formel, mit der HSL-Farbwerte (Farbton-, Sättigungs- und Helligkeitswerte) in RGB-Farbwerte (Rot-, Blau- und Grünwerte) konvertiert werden können. Er fragt sich, ob ihn jemand auf eine Arbeitsblattformel verweisen kann, die dies tut, oder auf eine Möglichkeit, dies in einem Makro zu tun.

Die Umrechnung von HSL- in RGB-Werte ist kein besonders triviales Unterfangen. Für diejenigen, die sich für die Mathematik dahinter interessieren, können Sie https://en.wikipedia.org/wiki/HSL_and_HSV[ den Wikipedia-Artikel zum Thema lesen.

Wenn Sie die Konvertierung nur selten durchführen müssen, gehen Sie am einfachsten wie folgt vor:

  1. Zeigen Sie die Registerkarte Home des Menübands an.

  2. Klicken Sie in der Gruppe Schriftart auf den Abwärtspfeil rechts neben dem Füllfarben-Werkzeug. Excel zeigt eine kleine Farbpalette und einige andere Optionen an.

  3. Wählen Sie Weitere Farben. Excel zeigt das Dialogfeld Farben an.

  4. Stellen Sie sicher, dass die Registerkarte Benutzerdefiniert angezeigt wird.

  5. Wählen Sie in der Dropdown-Liste Farbmodell die Option HSL. (Siehe Abbildung 1.)

  6. Am unteren Rand des Dialogfelds sehen Sie die einzelnen Werte für Farbton, Sat und Lum. Ändern Sie diese Werte nach Ihren Wünschen.

  7. Wählen Sie in der Dropdown-Liste Farbmodell die Option RGB. Die am unteren Rand des Dialogfelds angezeigten Werte sind die HSL-Werte (in Schritt 6 eingegeben)

konvertiert zu RGB.

  1. Klicken Sie auf Abbrechen, wenn Sie fertig sind.

Bei diesem Ansatz wird davon ausgegangen, dass jeder Ihrer HSL-Werte im Bereich von 0 bis 255 ausgedrückt werden kann. Wenn Ihre HSL-Werte jedoch entweder ein Winkel (für Farbton) oder ein Prozentsatz (für Sättigung und Luminanz) sind, benötigen Sie Um sie manuell zu konvertieren, bevor Sie sie in Schritt 6 eingeben. Sie können einen Winkelwert konvertieren, indem Sie den Winkel mit 255 multiplizieren und dann durch 360 dividieren.

Prozentsätze können umgerechnet werden, indem sie mit 2,55 multipliziert werden.

Wenn Sie die Werte häufiger abrufen müssen, hilft es, eine eigene benutzerdefinierte Funktion für die Konvertierung zu erstellen. Das folgende Beispiel akzeptiert drei Parameter (Farbton, Sättigung und Luminanz) und gibt eine Zeichenfolge zurück, die die durch Kommas getrennten dezimalen RGB-Werte enthält.

Function HSLtoRGB(Hue As Integer, Saturation As Integer, _   Luminance As Integer) As String     Dim r As Integer     Dim g As Integer     Dim b As Integer     Dim C As Double     Dim X As Double     Dim m As Double     Dim rfrac As Double     Dim gfrac As Double     Dim bfrac As Double     Dim hangle As Double     Dim hfrac As Double     Dim sfrac As Double     Dim lfrac As Double

If (Saturation = 0) Then         r = 255         g = 255         b = 255     Else         lfrac = Luminance / 255         hangle = Hue / 255  360         sfrac = Saturation / 255         C = (1 - Abs(2  lfrac - 1))  sfrac         hfrac = hangle / 60         hfrac = hfrac - Int(hfrac / 2)  2 'fmod calc         X = (1 - Abs(hfrac - 1))  C         m = lfrac - C / 2         Select Case hangle             Case Is < 60                 rfrac = C                 gfrac = X                 bfrac = 0             Case Is < 120                 rfrac = X                 gfrac = C                 bfrac = 0             Case Is < 180                 rfrac = 0                 gfrac = C                 bfrac = X             Case Is < 240                 rfrac = 0                 gfrac = X                 bfrac = C             Case Is < 300                 rfrac = X                 gfrac = 0                 bfrac = C             Case Else                 rfrac = C                 gfrac = 0                 bfrac = X         End Select         r = Round((rfrac + m)  255)

g = Round((gfrac + m) * 255)

b = Round((bfrac + m) * 255)

End If     HSLtoRGB = Str(r) & "," & Str(g) & "," & Str(b)

End Function

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13535) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.