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

Forumthread: Buttonfarbe ändern nach Zellwert

Buttonfarbe ändern nach Zellwert
14.10.2019 12:31:55
Kirk
Hallo,
Ich möchte gerne die Hintergrundfarbe eines Button anhand eines bestimmten Zellwertes einer oder mehrerer Zellen (Ergebnis einer Abfrage) ändern.
z.B. Zellen A1-4 haben einen bestimmten Wert oder Text (z.B. Holz), der aus einer Wenn-Funktionsabfrage stammt.
Nun soll ein Button entsprechend diesem Wert/Text seine Hintergrundfarbe ändern und bei Änderung des Zellwertes/Text wieder zurück auf die Ursprungsfarbe wechseln. Die Farben sind erstmal egal.
Wie kann man das entsprechend steuern? Bitte Code angeben und wo der genau eintragen werden muss.
Müsste dieser Code dann auf z.B. mehrere Button (mit entsprechender Wertänderung lt. Zelle) einfach kopiert werden?
Meine VBA-Kenntnisse sind gering ;-)
Vielen Dank im Voraus!
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 12:42:05
Daniel
Hi
1. such dir eine freie Zelle irgendwo auf dem Tabellenblatt.
schreibe in die Zelle die Buttonbeschriftung als Wert
2. steuere die Hintergrundfarbe der Zelle über die Bedingte Formatierung.
3. kopiere die Zelle und füge sie über das Kontextmenü "Inhalte Einfügen" als verknüpfte Grafik ein.
4. verwende diese Grafik als Button.
das auszuführende Makro muss als normales Makro in einem allgemeinen Modul stehen.
die Zuweisung kannst du über das Kontextmenü (rechte Maustaste) der Grafik erstellen ("Makro zuweisen")
Gruß Daniel
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 13:12:11
Kirk
Hallo Daniel,
danke für deine schnelle Antwort.
Funktioniert gut, aber ich bin damit noch nicht so richtig glücklich.
Der Button soll schon als Button ersichtlich sein und so auch optisch funktionieren. Zudem soll die Farbe der abgefragten Zelle (ohne Farbe) nicht geändert werden.
Wie bekommt man das hin für mehrere Zellen?
Also A1-4, bei entsprechendem Wert in einer dieser Zellen soll der Button gefärbt werden.
Bekommt man das hin?
VG Kirk
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 13:50:38
Kirk
Hallo Daniel,
danke für deine schnelle Antwort.
Funktioniert gut, aber ich bin damit noch nicht so richtig glücklich.
Der Button soll schon als Button ersichtlich sein und so auch optisch funktionieren. Zudem soll die Farbe der abgefragten Zelle (ohne Farbe) nicht geändert werden.
Wie bekommt man das hin für mehrere Zellen?
Also A1-4, bei entsprechendem Wert in einer dieser Zellen soll der Button gefärbt werden. Bei anderen Werten soll der Button zur Ursprungsfarbe zurückkehren.
VG Kirk
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 15:37:01
Daniel
Hi
per Code beispielsweise so:
If Worksheetfunction.CountIf(Range("A1:A4"), "irgendein Text") > 0 Then
Commandbutton1.BackColor = FarbCode1
Else
Commandbutton1.BackColor = FarbCode2
End if
für eine automatische Ausführung muss der Code im Change-Event oder im Calculate-Event des Tabellenblatts hinterlegt werden.
Change, wenn die Zellwerte von Hand geändert werden
Calculate, wenn die Zellwerte per Formel erzeugt werden.
Gruß Daniel
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 16:58:43
Kirk
Hi,
funktioniert bei mir nicht, leider.
Kannst du mir den Code für Calculate und Farbe rot und grün explizit schreiben? Wo muss der ganz genau hinein? Ich füge eine Beispieldatei an.
Ich würde vermuten, dass die Funktion doch eigentlich beim Button hinterlegt werden müsste, oder?
https://www.herber.de/bbs/user/132531.xlsm
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 17:59:05
Daniel
Hi
nein, die Funktion darf nicht beim Button hinterlegt werden, sondern beim Tabellenblatt, weil die Buttons ja bei einer Änderung der Tabellenblattwerte umgefärbt werden müssten.
dir fehlen schon noch ein paar Basics, die mir zu erklären hier im Forum zu aufwendig ist.
Beispielsweise musst du, wenn du die Farbe der Buttons ändern willst, auch mit ActiveX-Controls arbeiten und nicht mit Formularsteuerelementen.
Es gibt schon Gründe, warum ich dir bei VBA-nein meinen Weg empfohlen habe.
Du sollst ja auch verstehen, was du machst.
wenn dir die Buttons nicht gefallen, dann kannst du sie auch auf einem anderen Blatt erzeugen.
dann kannst du die Zellen in der größe anpassen und auch mit einem dunkleren rechten und unterem Rahmen versehen, dann sehen sie Buttons ähnlicher.
Oder du versiehst die verknüpften Grafiken mit einem Schatten, auch das hilft.
Gruß Daniel
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 18:41:15
Kirk
könntest du nicht einfach meine mitgelieferte Datei (s.o.) entsprechend ändern?
Nimm's mir nicht übel, aber du schmeißt mir nur Brocken hin ohne es von Grund auf zu erläutern. Ggf. habe ich mich eingangs nicht richtig ausgedrückt. Ich benötige ja keine Umwege, um das Problem zu lösen, sondern eine klare Aussage ob und wie ;-)
Wenn es nicht geht, dann geht's halt nicht.
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 21:31:55
Werner
Hallo,
es ist nicht die Frage ob es geht, sondern ob du damit was anfangen kannst. Geht es dir nur um die Optik, oder willst du letztendlich noch irgendwas anderes mit der Färbung der Button erreichen.
Schau dir deine Beispielmappe mal an. Ob du damit weiter kommst weiß ich nicht.
Das Makro ist im Codemodul des Tabellenblattes, in dem die Eingaben gemacht werden. In deiner Mappe jetzt im Tabellenblatt 2. Sprich, es werden die Zellen überwacht, in denen ein Eintrag gemacht werden und nicht die Zellen auf Tabellenblatt 1, in denen die Formelauswertung erfolgt.
https://www.herber.de/bbs/user/132532.xlsm
Gruß Werner
Anzeige
AW: Buttonfarbe ändern nach Zellwert
15.10.2019 13:51:44
Kirk
Hallo Werner,
Hab es mir angesehen. Das sieht schon sehr gut aus. Ist es möglich diese "Überwachung" auch auf besagte Formelauswertung, statt auf Eingabe, darzustellen und im gleichen Blatt?
Wenn ich es richtig gesehen habe hast du die Button als Axtive-X-Steuerelemente eingesetzt.
Die Optik ist das eine - ja. Das Andere ist, hinter jedem Button soll ein Druckbefehl für ein oder mehrere Blätter(sheet) liegen (z.B.Tabelle3 und Tabelle4). Das hatte ich in meiner ursprünglichen Version (mit den Formularbutton) bereits gelöst. Allerdings vermute ich, muss das bei Active-X-Button wieder neu geschrieben werden. Könntest du das nochmal darstellen? Ich kopier's mir dann in mein Original.
Danke im Voraus.
VG Kirk
Anzeige
AW: Buttonfarbe ändern nach Zellwert
15.10.2019 18:11:50
Kirk
Hallo Werner,
Hab es mir angesehen. Das sieht schon sehr gut aus. Ist es möglich diese "Überwachung" auch auf besagte Formelauswertung, statt auf Eingabe, darzustellen und im gleichen Blatt?
Wenn ich es richtig gesehen habe hast du die Button als Axtive-X-Steuerelemente eingesetzt.
Die Optik ist das eine - ja. Das Andere ist, hinter jedem Button soll ein Druckbefehl für ein oder mehrere Blätter(sheet) liegen (z.B.Tabelle3 und Tabelle4). Das hatte ich in meiner ursprünglichen Version (mit den Formularbutton) bereits gelöst. Allerdings vermute ich, muss das bei Active-X-Button wieder neu geschrieben werden. Könntest du das nochmal darstellen? Ich kopier's mir dann in mein Original.
Danke im Voraus.
VG Kirk
Anzeige
AW: Buttonfarbe ändern nach Zellwert
14.10.2019 23:53:08
Daniel
Könnte ich schon, aber ich glaube nicht, dass du mit deinem Kenntnisstand damit viel anfangen kannst.
Dazu müsste ich dir viel erklären und das ist über ein Forum sehr mühselig. Ein Forum kann einen VBA- Kurs immer nur ergänzen, aber nicht ersetzen.
Außerdem habe ich dir einen funktionierenden Lösungsweg, der zu deinem Wissensstand passt, aufgezeigt.
Gruß Daniel
Anzeige
AW: Buttonfarbe ändern nach Zellwert
15.10.2019 14:01:33
Kirk
Hallo Daniel,
Kein Problem, allerdings ist deine Lösung für mich nicht die befriedigende Endlösung. Wenn es nicht anders geht dann ist das so. Meine aktuelle Datei funktioniert mit allen Funktionen. Für Optik und Handling wäre es jedoch schöner/besser wenn die Button die Hintergrundfareb entsprechend ändern würden.
VG Kirk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Buttonfarbe ändern nach Zellwert


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Wähle eine freie Zelle auf deinem Excel-Blatt und schreibe dort die gewünschte Buttonbeschriftung.

  2. Bedingte Formatierung: Steuere die Hintergrundfarbe dieser Zelle über die Bedingte Formatierung. Du kannst die Formatierung basierend auf dem Zellwert festlegen.

  3. Button erstellen: Kopiere die formatierte Zelle und füge sie als verknüpfte Grafik ein. Dies kannst du über das Kontextmenü "Inhalte Einfügen" tun.

  4. Makro zuweisen: Um die Schaltfläche zu aktivieren, musst du ein Makro zuweisen. Klicke mit der rechten Maustaste auf die Grafik und wähle "Makro zuweisen".

  5. VBA-Code hinzufügen: Füge folgenden Code in das Codemodul des Tabellenblatts ein, um die Buttonfarbe basierend auf den Zellen A1 bis A4 zu ändern:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If WorksheetFunction.CountIf(Range("A1:A4"), "irgendein Text") > 0 Then
           CommandButton1.BackColor = RGB(0, 255, 0) ' Grün
       Else
           CommandButton1.BackColor = RGB(255, 0, 0) ' Rot
       End If
    End Sub

    Dieser Code ändert die Buttonfarbe je nach Zellinhalt.


Häufige Fehler und Lösungen

  • Falscher Codeort: Achte darauf, dass der Code im Codemodul des entsprechenden Tabellenblatts steht. Wenn der Code in einem anderen Modul ist, funktioniert die Schaltfläche nicht wie gewünscht.

  • Button nicht sichtbar: Stelle sicher, dass du ActiveX-Steuerelemente verwendest, nicht Formularsteuerelemente. ActiveX ermöglicht eine bessere Anpassung und Kontrolle über die Buttonfarbe.

  • Keine Änderung der Farbe: Überprüfe, ob die Zellen A1 bis A4 tatsächlich die erwarteten Werte enthalten. Wenn die Werte nicht übereinstimmen, wird die Farbe nicht aktualisiert.


Alternative Methoden

  1. Verknüpfte Grafiken als Buttons: Anstatt ActiveX-Buttons zu verwenden, kannst du auch verknüpfte Grafiken als Buttons nutzen, die durch VBA-Makros gesteuert werden.

  2. VBA-Makros: Du kannst weitere VBA-Makros erstellen, um die Excel-Buttonfarbe dynamisch zu ändern, indem du die Logik an deine Bedürfnisse anpasst.

  3. Excel-Skripte: In neueren Excel-Versionen kannst du auch mit Office Scripts arbeiten, um ähnliche Funktionalitäten zu schaffen.


Praktische Beispiele

  • Beispiel 1: Wenn in A1 der Text "Aktiv" steht, wird der Button grün. Andernfalls wird er rot.

  • Beispiel 2: Du kannst die Excel-Blattfarbe ändern, wenn ein bestimmter Wert in A1 bis A4 erreicht wird, indem du zusätzlich den Hintergrund des Blattes änderst:

    If WorksheetFunction.CountIf(Range("A1:A4"), "Aktiv") > 0 Then
       Me.Tabellenblattfarbe = RGB(200, 255, 200) ' Helles Grün
    Else
       Me.Tabellenblattfarbe = RGB(255, 200, 200) ' Helles Rot
    End If

Tipps für Profis

  • Farbcode anpassen: Du kannst die RGB-Werte anpassen, um die gewünschten Farben zu erhalten. Experimentiere mit verschiedenen Farbcodes, um das perfekte Design zu finden.

  • Dokumentation: Dokumentiere deinen Code gründlich, damit du ihn später leichter anpassen oder erweitern kannst.

  • Testen: Teste deine Makros regelmäßig, besonders nach größeren Änderungen, um sicherzustellen, dass alle Funktionen weiterhin korrekt arbeiten.


FAQ: Häufige Fragen

1. Wie kann ich die Farbe eines Buttons ändern, wenn sich die Werte in mehreren Zellen ändern?
Du kannst die VBA-Logik so erweitern, dass sie die Werte in mehreren Zellen überwacht. Nutze die CountIf-Funktion, um den Status aller relevanten Zellen zu überprüfen.

2. Wo genau muss ich den VBA-Code einfügen?
Der Code muss im Codemodul des spezifischen Tabellenblatts eingefügt werden, in dem du die Zellen überwachen möchtest. Du kannst dies erreichen, indem du mit der rechten Maustaste auf das Tabellenblatt klickst und "Code anzeigen" wählst.

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