Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Farbpalette (VBA)...

Farbpalette (VBA)...
Matthias
Hallo Excelfreunde
Level bitte nicht ganz so ernst nehmen!
mit:
Application.Dialogs(84).Show
öffne ich die Farbpalette zur Auswahl für den Benutzer.
Er kann dann (durch Auswählen einer Standardfarbe) einem Label in einem Userform
einen .BackColor - Wert übergeben.
Hintergrund ist eine visuelle Benutzerfreundlichkeit für den Anwender
um z.B. Feiertage, Geburtstage oder Termine in einem Kalender nach seiner
Wahrnehmung "augenfreundlich" darzustellen.
Denn jeder sieht Farbkombinationen (mit eigenen Augen) doch ein wenig anders.
In XL2000 sieht die Palette so aus:
Userbild
in XL2007 sieht sie allerdings so aus:
Userbild
Ich möchte nun auch in XL2007 den Dialog von XL2000 sehen
Denn es gibt in XL2007 die Option "Fülleffekte".
Diese Option möchte ich nicht zulassen, da die Farbrückgabe dann falsch wäre, z.B bei der Auswahl von 2 Farben.
Geht das überhaupt, muß ich das vergessen, oder sollte ich die 56 Standardfarben erst
auslesen und in einem eigenen Dialog dem Benutzer zur Verfügung stellen?
Vielen Dank schon mal fürs Lesen
Gruß Matthias
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Farbpalette (VBA)...
24.05.2012 13:00:18
EtoPHG
Vielleicht funktioniert das hier immer noch.
Gruess Hansueli
Vielen Dank ... Perfekt ! kwT
24.05.2012 23:36:18
Matthias
application.Dialogs(xlDialogColorPalette).Show
25.05.2012 16:46:20
NoNet
Hallo Matthias,
weshalb eigentlich 84 ? - Verwende doch die dafür vorgesehene Konstante xlDialogColorPalette !
Unter Excel 2010 zeigt folgende Anweisung das richtige Fenster an :
Application.Dialogs(xlDialogColorPalette).Show
Schönes Pfingst-WE,
NoNet
Anzeige
xlDialogColorPalette = Laufzeitfehler 1004
26.05.2012 14:01:03
Matthias
Hallo NoNet
Danke für Deinen Beitrag
XL2010 habe ich nicht zur Verfügung.
Ich benutze Xl2000 und XL2007
Leider kann ich es aber so nicht benutzen. Ich bekomme den Laufzeitfehler 1004
den ich beim Dialog(84) nicht bekomme.
Wie geschrieben setze ich den Backcolor-Wert für ein Label in einem Userform über den Dialog.
Dazu möchte ich nur die einfache Farbpalette der 56 Standardfarben benutzen, wie sie in XL2000 (siehe Ausgangsfrage) dargestellt wird.
Ich habe bereits über ein Spinbutton die 8 Farbkonstanten vbRed, vbYello, vbBlue vbCyan, usw... zur Auswahl fest eingepflegt, nur wollte ich eben dem Benutzer alle 56 Farben zur Verfügung stellen.
Dazu benutze ich die Zelle A1 als Color-Zwischenspeicher und werte es dann so aus:
lbltest.BackColor = Range("A1").Interior.Color,
wobei ich vorher den Interior.Color-Wert der Zelle in einer Variable zwischenspeichere und dannach zurückschreibe.
Vielleicht werde ich mir doch eine eigene Farbpalette als UForm zusammenstricken.
Mal sehen ob mir da was passendes einfällt.
Wahrscheinlich 56 Button die ich mit dem Interior.color-Wert aus dem Index der Palette hole.
xlDialogColorPalette funktioniert bei mir jedenfalls nicht, warum auch immer :(
Dennoch, Danke für Deine angebotene Hilfe :-)
Gruß Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Farbpalette in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um die Farbpalette in einem Excel VBA-Projekt zu nutzen, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein Userform hinzu:

    • Klicke mit der rechten Maustaste auf ein Projekt im Projektfenster und wähle Einfügen > UserForm.
  3. Füge ein Label hinzu:

    • Ziehe ein Label auf das Userform.
  4. Füge einen Button hinzu:

    • Ziehe einen Button auf das Userform und benenne ihn z.B. btnFarbe.
  5. Füge folgenden Code in das Click-Ereignis des Buttons ein:

    Private Sub btnFarbe_Click()
       Dim Farbe As Long
       Farbe = Application.Dialogs(xlDialogColorPalette).Show
       If Farbe <> False Then
           lbltest.BackColor = Farbe
       End If
    End Sub
  6. Schließe den VBA-Editor und teste das Userform im Excel.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn die Konstante xlDialogColorPalette nicht verfügbar ist oder nicht funktioniert. Stelle sicher, dass du die richtige Excel-Version verwendest und dass dein VBA-Code korrekt ist.

  • Dialog öffnet nicht: Wenn der Dialog für die Farbpalette nicht geöffnet wird, überprüfe, ob der Code in einer unterstützten Excel-Version (z.B. XL2007 oder XL2010) ausgeführt wird.


Alternative Methoden

Falls der Standarddialog nicht den gewünschten Effekt hat oder nicht funktioniert, könntest du eine eigene Farbpalette erstellen:

  1. Erstelle ein Userform mit Buttons für jede Farbe:

    • Erstelle 56 Buttons, die jede der Standardfarben repräsentieren.
    • Weise jedem Button den entsprechenden BackColor-Wert zu.
  2. Code-Beispiel für einen Button:

    Private Sub btnRed_Click()
       lbltest.BackColor = vbRed
    End Sub

Praktische Beispiele

Hier ist ein Beispiel, wie du eine benutzerdefinierte Farbpalette in einem Userform erstellen kannst:

Private Sub UserForm_Initialize()
    ' Setze die Farben der Buttons
    btnRed.BackColor = vbRed
    btnBlue.BackColor = vbBlue
    btnGreen.BackColor = vbGreen
    ' ... weitere Farben
End Sub

Tipps für Profis

  • Verwende Farbcodes: Anstelle von vordefinierten Konstanten kannst du auch RGB-Werte verwenden, um spezifischere Farben zu erstellen.

  • Farbkombinationen speichern: Überlege dir, wie du die vom Benutzer ausgewählten Farben speichern kannst, um sie später wieder zu verwenden.


FAQ: Häufige Fragen

1. Warum funktioniert xlDialogColorPalette nicht in meiner Version von Excel?
Die Konstante xlDialogColorPalette ist möglicherweise nicht in allen Excel-Versionen verfügbar. Stelle sicher, dass du eine unterstützte Version verwendest.

2. Wie kann ich eine eigene Farbpalette erstellen?
Du kannst ein Userform mit Buttons für jede Farbe erstellen und den BackColor-Wert der Labels entsprechend setzen. Dies gibt dir die Flexibilität, jede gewünschte Farbe zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige