Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1556to1560
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

Zelle mit RGB färben - Methode Colors schlägt fehl

Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 08:39:27
Moritz
Liebe VBA Experten - ich habe ein vermutlich simples Problem mit dem Färben einer Zelle, für das ich den ColorIndex benutze. Bei den RGB-Werte 0,0,0 / 255,0,0 / 255,255,255 u.ä. erscheint jedoch der Laufzeitfehler 1004 -- Die Methode 'Colors' für das Objekt '_Workbook' ist fehlgeschlagen -- das heißt immer wenn es an die Grenzen der Farbskala geht. Da ich VBA kaum benutze, komme trotz viel Rumprobierens nicht auf die Lösung. Da ich eine ganze Reihe von Zellen einfärbe, tritt das Problem mehrfach auf. Der Einfachheit halber steht unten nur den Code für Zelle D4, mit dem die RBG-Werte aus den Zellen A4:C4 ausgelesen werden. Für jede Hilfe wäre ich sehr dankbar! Viele Grüße, Moritz
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Not Intersect(Target, Range("A4:C4, J4")) Is Nothing Then
Dim lngColor As Long
lngColor = RGB(Cells(4, "A").Value, Cells(4, "B").Value, Cells(4, "C").Value)
With Range("D4").Interior
.Color = lngColor
ActiveWorkbook.Colors(.ColorIndex) = lngColor
End With
End If
Application.ScreenUpdating = True
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 09:02:23
Hajo_Zi
in meiner Datei geht es. Deine Datei sehe ich nicht.

AW: Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 16:29:00
Moritz
Vielen Dank, Hajo! Ich hab' um 13 Uhr in meiner Antwort an Werner angehängt. Gruß, Moritz
AW: Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 10:10:14
Werner
Hallo Moritz,
schließe mich meinem Vorredner an. Ich habe deinen Code 1:1 in eine Excel kopiert und er läuft durch, ohne irgendeine Fehlermeldung, Zelle D4 wird gefärbt.
Aber dazu ein paar Anmerkungen:
-die Variablendefinitionen (Dim) gehören in den Makrokopf
-Screenupdating auszuschalten ist nicht notwendig (in diesem Fall)
-With - End With macht hier keinen Sinn
-was du hiermit "ActiveWorkbook.Colors(.ColorIndex) = lngColor" bezweckst ist mir unklar
du willst doch nur die Zelle D4 färben
Hier mal dein gänderter Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngColor As Long
If Not Intersect(Target, Range("A4:C4, J4")) Is Nothing Then
lngColor = RGB(Cells(4, "A").Value, Cells(4, "B").Value, Cells(4, "C").Value)
Range("D4").Interior.Color = lngColor
End If
End Sub
Ansonsten wäre eine Beispielmappe, in der es nicht funktioniert, sinnvoll.
Gruß Werner
Anzeige
AW: Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 12:51:19
Moritz
Hallo Werner- vielen Dank für die Rückmeldung! War noch Erledigungen machen. Jetzt wird schon vieles klarer. Die Datei habe ich gerade hochgeladen. Gruß, Moritz
AW: Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 10:11:27
RPP63
Moin!
Mal der Reihe nach:
Du weist einer Zelle D4 eine beliebige Farbe zu.
DANACH fragst Du den ColorIndex der Zelle ab.
Wenn die Farbe nicht ZUFÄLLIG einem ColorIndex entsprechen sollte, kann Dein Code doch nur crashen.
Gruß Ralf
Anzeige
AW: Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 13:02:40
Moritz
Hallo Ralf - vielen Dank ebenfalls für die Rückmeldung. Ja, die Farbe ist beliebig und die Werte zwischen 0 und 255 werden aus den Zellen A4:C4 aufgelesen. Bis auf die beschriebenen Fälle funktioniert es, auch wenn mich Werner auf Verbesserungsmöglichkeiten hingewiesen hat. Die Datei habe ich hochgeladen. Gruß, Moritz
Wb-Methode Colors ist ein Relikt früherer Xl-...
06.05.2017 15:29:32
Luc:-?
…Versionen, Moritz,
das standardmäßig die ggf vom Nutzer modifizierte Farbpalette einer Mappe enthielt. Diese sind hier von 1 bis 56 indiziert (für Sonderzwecke, zB Formen und Diagramme, gab's noch ein paar mehr). Wollte man keine Farbverfälschung auf anderen Mappen riskieren, musste man dort diese Einstellungen übernehmen. Das war bspw für die Darstellung als HTML-Tabelle wichtig, wenn diese in ein Blatt kopiert oder direkt ein Blatt mit der Tabelle generiert wdn sollte.
Heute (ab Xl12/2007) ist die Verwendung dieser Methode eher kontraproduktiv, denn sie kann zu Farb­Einschrän­kungen und -Ver­fälschungen führen, weil die Palette wahrscheinlich theme-abhängige Basis-DesignFarben und einige Standard­farben enthält. Diesen wdn dann auch alle Varia­tionen derselben index­mäßig zugeordnet, so dass ein Index mehrere, recht ver­schie­dene Farben bezeichnen kann. Wird nun mit einem solchen Index eine Farbe per .Colors gewählt, erhält man uU eine ganz andere oder, wie hier, gar keine.
Jede .xl~~-Mappe unter Xl12/2007ff kann auch den .Color-Wert einer Zell- bzw TextFarbe oW weiter­verwenden, was gleiche Farben bewirkt. Deine Versuche sind dagg eher „von hinten durch die Brust geschossen“. Der .ColorIndex wird eigentlich nur noch benötigt, um weiß von ungefärbt (Zelle) bzw schwarz von automatisch (Text) zu unter­scheiden.
Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Wb-Methode Colors ist ein Relikt früherer Xl-...
06.05.2017 16:26:09
Moritz
Vielen Dank, Luc! Das ist zum Verständnis der, sagen wir, Farbverwaltung sehr hilfreich. Wie müßte ich meinen Code denn jetzt ändern? Zum besseren Verständnis habe ich die Datei unter einer früheren Antworten angehängt. Gruß, Moritz
AW: Zelle mit RGB färben - Methode Colors schlägt fehl
06.05.2017 16:52:27
Moritz
Lösung: Die Zeile "ActiveWorkbook.Colors(.ColorIndex) = lngColor" war der Übeltäter. Ersetzt man sie mit "ActiveWorkbook.Colors(Index) = lngColor", funktioniert es einwandfrei. Vielen Dank nochmal für die Antworten.

251 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige