Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ToggleButton
BildScreenshot zu ToggleButton ToggleButton-Seite mit Beispielarbeitsmappe aufrufen

ToggleButton Hintergrundfarbe ändern


Betrifft: ToggleButton Hintergrundfarbe ändern von: Emre
Geschrieben am: 12.08.2019 13:26:39

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

  

Betrifft: AW: ToggleButton Hintergrundfarbe ändern von: Werni
Geschrieben am: 12.08.2019 13:56:28

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


  

Betrifft: AW: ToggleButton Hintergrundfarbe ändern von: Emre
Geschrieben am: 12.08.2019 14:18:14

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


  

Betrifft: AW: ToggleButton Hintergrundfarbe ändern von: Daniel
Geschrieben am: 12.08.2019 14:37:26

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


  

Betrifft: AW: ToggleButton Hintergrundfarbe ändern von: Werni
Geschrieben am: 13.08.2019 11:40:35

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


Beiträge aus dem Excel-Forum zum Thema "ToggleButton Hintergrundfarbe ändern"