Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1916to1920
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 Zellfarbe mit Verweis RGB Liste ...

VBA Zellfarbe mit Verweis RGB Liste ...
12.02.2023 13:44:51
udo.d
Hallo Forum,
könntet ihr mir bitte bei folgender Thematik auf die Sprünge helfen.
With Range(Cells(ActiveCell.Row, ActiveCell.Column).Address & ":" & Cells(ActiveCell.Row + Selection.Rows.Count - 1, ActiveCell.Column + Selection.Columns.Count - 1).Address)
.Interior.Color = RGB(WorksheetFunction.Index(Sheets(2).Range("AU41:BD71"), 19, 5))
End With
Fehlermeldung Argument ist nicht optional / in der .interior ... Zeile ist das RGB markiert
Gebe ich in die RGB Klammer zB RGB(255,255,255) für weiss ein, funktioniert es, und natürlich alle anderen Farben auch.
Ich habe auf Tabellenblatt 2 jedoch eine kleine Auflistung verschiedener Farbtöne gelistet ( deren RGB Werte ) , dort im Zellbereich AU41:BD71 stehen also
in verschiedenen Zeilen unterschiedliche RGB Werte, hier oben zum Testen mittels einer Index Zuweisung / Matrix dort also AU41:BD71, in der Matrix z:B Zeile 19 und die Spalte 5 in jener Zelle steht dann zB. eine VerkettenFormel ( =VERKETTEN(AV59;",";AW59;",";AX59) ).
Wie müsste ich in meiner With ...interior ...=RGB( ? ) Anweisung es richtiger schreiben / sprich den Verweis da anders aufstellen ?
Habt ihr ne Idee
LG Udo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellfarbe mit Verweis RGB Liste ...
12.02.2023 14:10:22
GerdL
Hallo Udo, z.B so
RGB(255, 100, 200)
Je ein Argument für Rot, Grün, Blau.
Gruß Gerd
leider nicht ... das war mir b. bewusst
12.02.2023 14:47:46
udo.d
Hallo Gerd,
den Ansatz kannte / kenne ich ... aus der Position sozusagen bin ich gestartet. Die Zahlenwerte sollen sozusagen variabel über eine
Auflistung verwiesen werden.
Hintergrund ist der , das dann der Farbwert - je Anwender individuell eingestellt werden kann und nach Projekt.
Die eigentliche Schalterfunktion die den gewählten Bereich dann färbt ( das sind dann so an die 10 Schalter mit unterschiedlichen Farben )
die würden sich dann alle die gerade aktuelle RGB Werte aus jener Liste in TAbelle 2 abrufen.
Sprich ändere ich dort in der Liste die Werte mauell ... würde später beim Ausführen des Färbenmakros ( in TAB 4 ) sich die jeweilige
Färbenfunktion ( der jew. Schalter zum Färben ) sich über jenen VBA - INDEX Verweis dann die entsprechenden RGB Werte dort abgreifen.
Also in der eigentlichen Zeilen in meinem "Färben" Code With ... .interior.Color = RGB ( ? ) wie müsste hier ( ? ) ein Indexverweis nach CODE geschrieben aussehen ?
Klar es gäbe eine Möglichkeit in per Hilfsformel in irgendeiner Zelle ( eine entspr. Indexformel einzustellen und deren Wert zB. in A1 anzeigen zu lassen ...
dann könnte ich vermutl. mit
With ... .interior.Color = RGB ( [A1].value ) fortfahren ...
Nur dies würde ich in dem Fall gerne umgehen und siche nur die richtige Schreibweise für die INDEX Passage nach RGB( ... )
Lieben Dank & Gruß
udo
Anzeige
ich vermute über RGB ... gehts nicht
12.02.2023 15:25:13
udo.d
hab jetzt auch schon einige Ansätze durch, will nicht klappen, nur wenn man die direkten Zahlenwerte dort einträgt macht er es ...
Aber einen Verweis auf eine Liste und die Zuweisung somit Variabel zu gestaltet funkt so noch nicht.
Werds mal noch über die HEX Werte versuchen ...
LG
udo
AW: ich vermute über RGB ... gehts nicht
12.02.2023 16:07:22
GerdL
Ich vermute doch.
ActiveCell.Interior.Color = RGB(WorksheetFunction.Index(Sheets(2).Range("AU41:BD71"), 19, 5), 100, 100)
Gruß Gerd
AW: VBA Zellfarbe mit Verweis RGB Liste ...
12.02.2023 16:23:55
onur
RGB braucht DREI Argumente und du kannst nicht VBA verarschen, indem du einfach einen String baust, das aussieht wie drei Argumente.
Statt
 =VERKETTEN(AV59;",";AW59;",";AX59) 
das hier
 =AV59+256*AW59+65536*AX59
und statt
.Interior.Color = RGB(WorksheetFunction.Index(Sheets(2).Range("AU41:BD71"), 19, 5)) 
das hier
.Interior.Color = WorksheetFunction.Index(Sheets(2).Range("AU41:BD71"), 19, 5)

Anzeige
100 % - das ist es !
12.02.2023 16:40:26
udo.d
Hey, zunächst mal, das war wohl doch ne harte Nuss, zumindest für mich !
Hätte ich ohne euren Einsatz nicht gelößt bekommen !
Vielen Dank Gerd, den Weg den du angedacht hattest hab ich auch schon x-mal versucht und immer mit anderer Schreibweise usw.

Onur, was soll ich sagen, ich danke dir / euch beiden wirklich sehr ... auf die Idee die Verkettung der RGB Werte so anzudenken ... AV59+256*AW59+65536*AX59
wäre ich nicht gekommen, von daher - ehrlich großen DANK !
Wünsche euch noch ein schönes WE, den Rest schaff ich alleine
Ganz lieben Dank
Udo
Anzeige
Gerne !
12.02.2023 17:53:06
onur

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige