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

Forumthread: ToggleButton Hintergrundfarbe ändern

ToggleButton Hintergrundfarbe ändern
12.08.2019 13:26:39
Emre
Hallo Leute,
ich habe eine große Anzahl an ToggleButtons in meiner Userform.
Da ich nicht bei jeder Änderung den Befehl zur Farbänderung geben will lautet meine Frage:
Kann ich die Hintergrundfarbe meiner ToggleButtons grundsätzlich ändern? Heißt wenn es True ist immer grün wenn false immer rot?
Danke im Voraus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ToggleButton Hintergrundfarbe ändern
12.08.2019 13:56:28
Werni
Hallo
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
ToggleButton1.BackColor = RGB(0, 255, 0)
Else
ToggleButton1.BackColor = RGB(255, 0, 0)
End If
End Sub
Gruss Werni
AW: ToggleButton Hintergrundfarbe ändern
12.08.2019 14:18:14
Emre
Hallo Werni,
danke für deinen Input. Hier müsste ich diesen Befehl für jeden Button erstellen, sprich 37x - das will ich eigentlich vermeiden.
Ich würde wollen, das die Buttons grundsätzlich z.B. grün sind wenn True.
Viele Grüße
Emre
Anzeige
AW: ToggleButton Hintergrundfarbe ändern
12.08.2019 14:37:26
Daniel
Hi
das musst du leider für jeden Button einzeln programmieren.
für unterschiedliche Farben gibt es keine vordefinierte Einstellung oder Eigenschaft.
du kannst den Code aber etwas vereinfachen, so dass in jedem Click-Event der selbe Code steht, den du einfach mit Copy-Paste ohne Änderung übernehmen kannst
ActiveControl.BackColor = IIF(ActiveControl.Value, vbRed, vbGreen)
wenn du nicht für jeden Button einen eigenen Button erstellen willst, solltest du dich mal mit "Klassenprogrammierung" auseinandersetzen.
Damit kannst du in solchen Fällen mit einem einzigen Makro auskommen, welches du den Buttons als Klick-Event zuweist.
Wie das genau geht, müsstest du mal selber suchen, es sollte genügen Beispiele geben, ich kenne mich damit aber nicht aus.
allerdings, dass spezielle "Shading" der angeklickten Buttons bekommst du trotzdem nicht weg, das ist den ToggleButtons fest einprogrammiert.
Gruß Daniel
Anzeige
AW: ToggleButton Hintergrundfarbe ändern
13.08.2019 11:40:35
Werni
Hallo Emre
Wenn die ToggelButton's eine Calclation hervor rufen, dann
Private Sub Worksheet_Calculate()
AlleTB_kontrollieren
End Sub 
Und in ein normales Modul
Sub AlleTB_kontrollieren()
Dim TBs As Object
Application.ScreenUpdating = False
For Each TBs In Tabelle1.OLEObjects
If InStr(1, TBs.Name, "Togg") > 0 Then
With TBs.Name
If ActiveSheet.OLEObjects(TBs.Name).Object.Value = False Then ActiveSheet. _
OLEObjects(TBs.Name).Object.BackColor = RGB(255, 0, 0)
If ActiveSheet.OLEObjects(TBs.Name).Object.Value = True Then ActiveSheet. _
OLEObjects(TBs.Name).Object.BackColor = RGB(0, 255, 0)
End With
End If
Next
Application.ScreenUpdating = True
End Sub
Gruss Werni
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

ToggleButton Hintergrundfarbe in Excel anpassen


Schritt-für-Schritt-Anleitung

Um die Hintergrundfarbe deiner ToggleButtons in Excel zu ändern, kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft den Status der ToggleButtons und ändert die Farbe entsprechend:

  1. Öffne den Visual Basic Editor (ALT + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Kopiere den folgenden Code in das Modul:

    Sub AlleTB_kontrollieren()
        Dim TBs As Object
        Application.ScreenUpdating = False
        For Each TBs In Tabelle1.OLEObjects
            If InStr(1, TBs.Name, "Togg") > 0 Then
                With TBs.Object
                    If .Value = False Then
                        .BackColor = RGB(255, 0, 0) ' Rot
                    Else
                        .BackColor = RGB(0, 255, 0) ' Grün
                    End If
                End With
            End If
        Next
        Application.ScreenUpdating = True
    End Sub
  4. Schließe den Editor und gehe zurück zu deiner Userform.

  5. Füge den folgenden Code in das Click-Event eines der ToggleButtons ein:

    Private Sub Worksheet_Calculate()
        AlleTB_kontrollieren
    End Sub

Jetzt werden die ToggleButtons automatisch ihre Farbe ändern, wenn du die Berechnung auf dem Arbeitsblatt auslöst.


Häufige Fehler und Lösungen

  • Fehler: Die Farbe ändert sich nicht, wenn ich auf den ToggleButton klicke.

    • Lösung: Stelle sicher, dass der Code im Click-Event des Buttons korrekt eingebunden ist und dass die Berechnung auf dem Arbeitsblatt ausgelöst wird.
  • Fehler: Ich sehe keine Farbänderung.

    • Lösung: Überprüfe, ob die Namen der ToggleButtons korrekt sind und ob sie das Wort "Togg" enthalten. Der Code sucht nach diesem Substring.

Alternative Methoden

Wenn du nicht für jeden ToggleButton den Code manuell anpassen möchtest, kannst du auch Klassenmodul verwenden. Damit kannst du eine generische Lösung erstellen, die für alle ToggleButtons gilt.

  1. Erstelle ein neues Klassenmodul (Rechtsklick auf "VBAProject" > Einfügen > Klassenmodul).
  2. Schreibe einen ähnlichen Code, der den Click-Event des Buttons behandelt.
  3. Weise alle ToggleButtons dieser Klasse zu, um die Farben bei Klick zu ändern.

Praktische Beispiele

Hier ist ein einfaches Beispiel für das Ändern der Farbe eines ToggleButtons bei Klick:

Private Sub ToggleButton1_Click()
    ToggleButton1.BackColor = IIf(ToggleButton1.Value, RGB(0, 255, 0), RGB(255, 0, 0))
End Sub

Dieses Beispiel kannst du für jeden ToggleButton wiederverwenden, um die excel schaltfläche farbe ändern bei klick zu ermöglichen.


Tipps für Profis

  • Verwende Namenskonventionen: Wenn du viele ToggleButtons hast, nutze eine einheitliche Namensgebung wie "Togg1", "Togg2" usw. Das erleichtert die Programmierung und Wartung.
  • Optimiere die Performance: Deaktiviere Application.ScreenUpdating am Anfang und aktiviere es am Ende deines Codes, um die Leistung zu verbessern, insbesondere bei vielen Buttons.
  • Testen: Teste deine Userform regelmäßig, um sicherzustellen, dass alle Farbänderungen wie gewünscht funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich die Farben anpassen? Du kannst die RGB-Werte im Code verändern, um andere Farben zu verwenden.

2. Funktioniert das auch in Word? Die beschriebenen Methoden sind spezifisch für Excel. In Word müsstest du andere Ansätze verwenden, um die word seite färben.

3. Kann ich die ToggleButtons auch anders gestalten? Ja, du kannst die Buttons bearbeiten, um ihnen ein individuelles Design zu geben, einschließlich der Größe und der Schriftart.

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