Ich habe eine Tabelle mit Zellen in Spalte A, die Farben in ihrem HEX-Format enthalten. Ist es möglich, die benachbarte Zelle automatisch mit der Farbe zu füllen, die dem HEX-Wert entspricht?
Basierend auf bisherigen Recherchen verstehe ich, dass VBA zuerst den HEX-String in seinen RGB-Wert umwandeln sollte und dann die Zelle mit dem Ergebnis füllen sollte.
Zum Beispiel: Wenn A1 den Wert "7fcac3" enthält (oder "#7fcac3", aber ich glaube, das Doppelkreuz ist nicht erforderlich), sollte der VBA die benachbarte Zelle B mit RGB (127,202,195) füllen.
Im Folgenden finden Sie ein Beispiel, wie der VBA aussehen könnte, gefunden (hier). Das Problem ist, dass ich in Excel 2013 einen "Kompilierungsfehler: Ungültig außerhalb des Verfahrens"-Fehler erhalte.
For i = 1 To LastRow
Sub SetHexColors()
Dim i, LastRow
LastRow = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To LastRow
Cells(i, "B").Interior.Color = HEXCOL2RGB(Cells(i, "A"))
Next
End Sub
Public Function HEXCOL2RGB(ByVal HexColor As String) As String
Dim Red As String, Green As String, Blue As String
HexColor = Replace(HexColor, "#", "")
Red = Val("&H" & Mid(HexColor, 1, 2))
Green = Val("&H" & Mid(HexColor, 3, 2))
Blue = Val("&H" & Mid(HexColor, 5, 2))
HEXCOL2RGB = RGB(Red, Green, Blue)
End Function
Vielen Dank, Mathieu