in aktivem Arbeitsblatt möchte ich die RGB-Farbe in Spalte E ab Zeile 2 auslesen.
Meine RGB-Werte stehen in Spalte B, C, D (ab Zeile 2).
Wie mache ich das?
Vielen Dank im Voraus...
Liebe Grüße
Selma
Public Sub selmasRGB()
Dim lngRow As Long
Dim objColor As OLEObject
Application.ScreenUpdating = False
For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Set objColor = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", _
Left:=Columns(5).Left, Top:=Rows(lngRow).Top, _
Width:=Columns(5).Width, Height:=Rows(lngRow).Height)
objColor.Object.Caption = ""
objColor.Object.BackColor = RGB(Cells(lngRow, 2).Value, _
Cells(lngRow, 3).Value, Cells(lngRow, 4).Value)
Next
Application.ScreenUpdating = True
End Sub
Und noch eine kleine Routine zum löschen der selben:
Public Sub DeleteLabel()
Dim objColor As OLEObject
For Each objColor In ActiveSheet.OLEObjects
objColor.Delete
Next
End Sub
Gruß
Nepumuk
Sub test()
Dim intX As Single, intY As Single, intH As Single, intW As Single
Dim i As Long, sh As Shape
Dim R As Byte, G As Byte, B As Byte
Application.ScreenUpdating = False
For Each sh In ActiveSheet.Shapes
If sh.Name Like "rctCol*" Then sh.Delete
Next
For i = 2 To Range("a65536").End(xlUp).Row
With Cells(i, 5)
intX = .Left
intY = .Top
intH = .Height
intW = .Width
R = .Offset(0, -3)
G = .Offset(0, -2)
B = .Offset(0, -1)
End With
Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, intX, intY, intW, intH)
With sh
.Name = "rctCol_" & i
With .Fill
.Visible = msoTrue
.Solid
.ForeColor.RGB = RGB(R, G, B)
.Transparency = 0#
End With
.Line.Visible = msoFalse
End With
Next
Application.ScreenUpdating = True
End Sub
Sub test()
Dim Zaehler As Integer
Dim Wert1 As Integer
Dim Wert2 As Integer
Dim Wert3 As Integer
'Solange der Wert in Spalte 1 nicht leer ist, wird die Schleife durchgeführt
Do While Worksheets("Tabelle1").Cells(Zaehler + 2, 1).Value <> ""
Wert1 = Worksheets("TAbelle1").Cells(Zaehler + 2, 2).Value
Wert2 = Worksheets("TAbelle1").Cells(Zaehler + 2, 3).Value
Wert3 = Worksheets("TAbelle1").Cells(Zaehler + 2, 4).Value
Worksheets("Tabelle1").Cells(Zaehler + 2, 5).Interior.Color = _
RGB(Wert1, Wert2, Wert3)
Zaehler = Zaehler + 1
Loop
End Sub
Um die RGB-Farbe in Excel auszulesen, kannst du VBA verwenden. Hier ist eine einfache Anleitung, wie du dabei vorgehst:
Öffne dein Excel-Dokument und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)", wähle "Einfügen" und dann "Modul".
Kopiere den folgenden Code in das Modul:
Sub RGB_Farbe_auslesen()
Dim lngRow As Long
Dim objColor As OLEObject
Application.ScreenUpdating = False
For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
Set objColor = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", _
Left:=Columns(5).Left, Top:=Rows(lngRow).Top, _
Width:=Columns(5).Width, Height:=Rows(lngRow).Height)
objColor.Object.BackColor = RGB(Cells(lngRow, 2).Value, _
Cells(lngRow, 3).Value, _
Cells(lngRow, 4).Value)
Next lngRow
Application.ScreenUpdating = True
End Sub
Passe den Tabellenblattnamen an, falls nötig.
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus: Drücke ALT + F8
, wähle RGB_Farbe_auslesen
und klicke auf "Ausführen".
Problem: Die Farben werden nicht korrekt angezeigt.
Problem: Makro läuft sehr langsam.
Application.ScreenUpdating
auf False
gesetzt ist, um die Bildschirmaktualisierung auszuschalten.Du kannst auch die Funktion „Zellenfarbe auslesen“ verwenden, um die Farbe einer Zelle direkt zu ermitteln. Hier ist ein Beispiel:
Function ZellenfarbeAuslesen(rng As Range) As Long
ZellenfarbeAuslesen = rng.Interior.Color
End Function
Mit dieser Funktion kannst du die Hintergrundfarbe einer Zelle abfragen und den Farbcode erhalten.
Zellenfarbe auslesen: Um die Farbe einer bestimmten Zelle auszulesen, verwende die Funktion wie folgt:
Sub BeispielFarbeAuslesen()
Dim farbe As Long
farbe = ZellenfarbeAuslesen(Sheets("Tabelle1").Cells(2, 1))
MsgBox "Die Hintergrundfarbe der Zelle ist: " & farbe
End Sub
Farbcode auslesen: Um den Farbcode einer Zelle zu ermitteln, kannst du die Funktion in einer Formel verwenden, z.B. =ZellenfarbeAuslesen(A1)
in einer anderen Zelle.
=FORMEL.FARBE(A1)
(abhängig von deiner Excel-Version), um Farben direkt in Zellen anzuzeigen.1. Wie kann ich die Schriftfarbe einer Zelle auslesen?
Du kannst die Schriftfarbe mit der Font.Color
-Eigenschaft auslesen:
Dim schriftfarbe As Long
schriftfarbe = Cells(1, 1).Font.Color
2. Gibt es eine Möglichkeit, die Hintergrundfarbe einer Zelle in eine andere Zelle zu kopieren?
Ja, du kannst einfach den Wert von Interior.Color
in die Zielzelle zuweisen:
Cells(2, 2).Interior.Color = Cells(1, 1).Interior.Color
Mit diesen Anleitungen und Tipps kannst du die Farbe in Excel auslesen und deine VBA-Kenntnisse vertiefen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen