Hi Revanchist,
so wie du dir das vorstellst, geht das leider nicht. Zumindest nicht mit dem Standard-Colorpicker. Man könnte nun ein einen eigenen Colorpicker generieren. Direkt im Menüband wird das schwierig, da braucht man Ahnung von RibbonX, die ich (noch) nicht habe. Früher war das einfacher, da hatte man noch Symbolleisten, die man per VBA anpassen konnte.
Aber zurück zum Thema. Ich hätte da drei Ideen:
Die einfachste: Zeichne ein neues Makro mit dem Makrorekorder in die Persönliche Arbeitsmappe auf. Zur Erinnerung: Persönliche Arbeitsmappe bedeutet, dass du das Makro später in verschiedenen Excel-Dateien anwenden kannst. Während der Aufzeichnung füllst du eine beliebige Zelle mit einer Farbe deiner Wahl. Im Code ersetzt du dann das Range-Objekt durch Selection und fertig (Makro stoppen). Wähle nun Menüband anpassen und suche aus der Kategorie Makros dein Makro raus. Über den Button umbenennen kannst du auch ein neues Symbol hinterlegen. Wenn du nun im Menüband auf das Makroicon drückst wird die aktuelle Markierung immer mit derselben Farbe gefüllt die du damals aufgezeichnet hast. Für weitere Farben, erstellst du einfach weitere Icons.
Zweite Idee: Man könnte nur zwei oder drei Icons erstellen, die ein Makro aufrufen, welches beim ersten Aufruf nach einer Farbe verlangt. Anschließend wird diese Farbe solange bei weiteren Klicks für das Füllen verwendet, bis eine neue Farbe definiert wird. Die neue Definition würde nur dann erscheinen, wenn man eine Zelle mit der Farbe füllt, welche dieselbe Farbe bereits besitzt.
Dritte Idee: Erstelle einen eigenen Colorpicker über ein Userform. Einfach ein paar Labels mit entsprechender Hintergrundfarbe füllen. Das Icon im Menüband ruft dann das Makro auf welches wiederum das Userform startet. Im Ereignis Label1_Click wird dann der Code Selection.Interior.Color = Label1.BackColor ausgeführt.
Welche der drei Varianten darfs sein? Versuch dich mal an der ersten und danach an der dritten Variante selbst. Ist eigentlich ganz einfach.
Gruß Mr. K.