Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1900to1904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ToggleButton

ToggleButton
20.10.2022 14:11:14
Markus
Hallo,
ich habe eine Userform mit 60 ToggleButtons. Wenn ich zum Beispiel Toggle1 drücke, dann soll er mir "Ja" in die Tabelle "Einstellungen" Zelle P7 schreiben und Toggle1 soll sich rot färben(und gedrückt bleiben). Drücke ich Toogle2 dann "Ja" in Zelle P8, usw. ansonsten soll "Nein" stehen.

Private Sub ToggleButton1_change()
If Me.ToggleButton1.Value = True Then
Sheets("Einstellungen").Range("P7") = "JA"
ToggleButton1.BackColor = RGB(197, 217, 241)
Else
Sheets("Einstellungen").Range("P7") = "NEIN"
ToggleButton1.BackColor = RGB(216, 228, 188)
End If
End Sub
Soweit so gut. Das Problem ist das ich es nicht für 60 Toggles machen will bzw. das nicht der Sinn sein soll. Gibt es da eine Möglichkeit mit einer Schleife bzw. Klassenmodul? Wenn ja wie kann das ausschauen?
Des weiteren würde ich gerne beim Userform Start, das die Toggles schauen wie der Wert in der zugeordneten Zelle ist und sich dann wenn "JA" steht aktivieren und die richtige Farbe bekommen und wenn "Nein" dann nicht aktivieren.
Anbei die Beispieldatei:
https://www.herber.de/bbs/user/155768.xlsm
DANKE FÜR EURE UNTERSTÜTZUNG.
LG
Max

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ToggleButton
20.10.2022 14:41:53
Rudi
würde ich so machen:

Option Explicit
Private Sub UserForm_Initialize()
Dim lbl As MSForms.ToggleButton
Dim iCounter As Integer
For iCounter = 1 To 60
With Controls("ToggleButton" & iCounter)
.Caption = "Herr " & iCounter
.Value = Sheets("Einstellungen").Cells(iCounter + 6, 16) = "Ja"
.BackColor = IIf(.Value, RGB(197, 217, 241), RGB(216, 228, 188))
End With
Next iCounter
TextBox1.Value = Sheets("Einstellungen").Range("C4")
End Sub
Private Sub ToggleButton1_Change()
Toggle 1
End Sub
Private Sub ToggleButton2_Change()
Toggle 2
End Sub
Private Sub ToggleButton3_Change()
Toggle 3
End Sub
' und die anderen 57
Private Sub Toggle(iBtn As Integer)
With Controls("ToggleButton" & iBtn)
If .Value Then
Sheets("Einstellungen").Cells(iBtn + 6, 16) = "Ja"
.BackColor = RGB(197, 217, 241)
Else
Sheets("Einstellungen").Cells(iBtn + 6, 16) = "Nein"
.BackColor = RGB(216, 228, 188)
End If
End With
End Sub
Gruß
Rudi
Anzeige
AW: ToggleButton
24.10.2022 15:09:55
Markus
Hallo Rudi,
danke für deinen Code, jedoch muss man für jeden Toggle ändern

Private Sub ToggleButton1_Change()
Toggle 1
End Sub
LG
Max
AW: ToggleButton
20.10.2022 15:22:53
volti
Hallo Markus,
bei sehr vielen Buttons kann Du auch die Klassenprogrammierung bemühen.
Siehe anliegende Datei.
In der Initialize-Sub werden die betroffenen ToggleButton (alle oder gefiltert, wie genehm) in ein Array gelesen.
Bei Klick auf einen Button kannst Du darauf in der Sub coToggleButton_Click im Modul clsToggleButton reagieren.
ToggleButton.xlsm
viele Grüße
Karl-Heinz
Anzeige
AW: ToggleButton
24.10.2022 15:05:36
Markus
Hallo Karl-Heinz,
Danke für deinen Code. Jedoch ändert er mir immer nur die Zelle P7, egal welchen Button ich drücke. Und wenn ich die Userform öffne, kann dann der Button auslesen ob er aktiv oder nicht aktiv sein soll?
LG
Max
AW: ToggleButton
24.10.2022 19:46:38
volti
Hallo Markus,
ein Update...
ToggleButton.xlsm
Gruß
Karl-Heinz
AW: ToggleButton
24.10.2022 15:08:13
Markus
Hallo snb,
danke für deinen Code. Was ist wenn ich statt Ja/Nein einen anderen Text will? Vielleicht fällt dir auch zu den anderen Anregungen meines Threads noch was ein.
DANKE
LG
Max
Anzeige
AW: ToggleButton
24.10.2022 15:31:10
Daniel
Hi
das sollte sich relativ einfach mit Hilfe einer Multiselect-Listbox anstelle der ToggleButtons programmieren lassen.
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige