Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
736to740
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
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

RGB-Farbe auslesen ?

RGB-Farbe auslesen ?
24.02.2006 12:23:59
Selma
Hallo Leute,
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

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RGB-Farbe auslesen ?
24.02.2006 12:29:45
Nepumuk
Hallo Selma,
das ist jetzt nicht ganz klar. Wo kommt was her und wo soll was hin?
Gruß
Nepumuk

AW: RGB-Farbe auslesen ?
24.02.2006 13:01:18
Ceci
Hallo Selma,
dann müsste mein kleines Makro funktionieren, so hab ich es getestet. Du musst halt den Tabellenblattnamen anpassen...
mfg Ceci
AW: RGB-Farbe auslesen ?
24.02.2006 13:06:41
Nepumuk
Hallo Selma,
da gibt es ein Problem. In einer Tabelle sind nur 56 Farben darstellbar. Excel passt also die RGB-Farben automatisch an die darstellbare Farbe an. Wenn du z.B. Labels in die Zellen einfügen würdest, dann könnten die Farben richtig dargestellt werden. Das ganze kannst du auch per VBA machen. Wäre das OK?
Gruß
Nepumuk

Anzeige
AW: RGB-Farbe auslesen ?
24.02.2006 13:18:41
Selma
Hallo Nepumuk,
das wäre auch OK !
LG
Selma
AW: RGB-Farbe auslesen ?
24.02.2006 13:46:50
Nepumuk
Hallo Selma,
in deiner Tabelle sind ein paar doppelte drin.
Hier der Code zum erzeugen der Labels:
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

Anzeige
warum auch immer...
24.02.2006 14:17:51
u_
Hallo,
..das ist vielleicht nicht so schön aber handgestoppt 9x schneller:

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

Gruß
Geist ist geil!
Anzeige
AW: warum auch immer...
24.02.2006 14:28:08
Nepumuk
Hi u_,
weil ich nie mit Shapes arbeite.
Gruß
Nepumuk

AW: RGB-Farbe auslesen ?
24.02.2006 14:25:28
Selma
Hallo Nepumuk,
super es hat prima geklappt...
Ich habe noch eine Frage dazu.
Und zwar besteht die Möglichkeit, wenn im Arbeitsblatt "Daten" z.B. in Zelle B9 = 25 steht
habe, das in Zelle C9 die richtige Farbe aus dem Arbeitsblatt "RGB" dargestellt wird?
Beispieldatei: https://www.herber.de/bbs/user/31385.xls
LG
Selma
AW: RGB-Farbe auslesen ?
25.02.2006 00:08:51
Nepumuk
Hallo Selma,
dazu müssen in der Tabelle RGB nur die Werte drin sein. Das Makro ist natürlich nur für diese Konstellation. Wenn du am Tabellenaufbau einer der beiden Tabellen was änderst, musst du es natürlich anpassen.
https://www.herber.de/bbs/user/31402.xls
Gruß
Nepumuk

Anzeige
Danke Nepumuk !!!
28.02.2006 17:41:47
Selma
Danke Nepumuk !!!
LG
SELMA
AW: RGB-Farbe auslesen ?
24.02.2006 12:54:12
Ceci
Hallo Selma,
versuch mal folgendes:

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

mfg Ceci
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige