HERBERS Excel-Forum - das Archiv
Userform Toggle Button rücksetzen
SteffenS

Hallo Zusammen,
ich habe in einer Userform mehrere Toggle Buttons.
Wenn ich einen Button auswähle so möchte ich das die anderen deaktiviert (.value=False) werden.
Wie bekomme ich dies hin ohne das die gedrückte Schaltfläche auch deaktiviert wird.
Ich habe es mit:


Private Sub reset_button(bname As String)
Dim mn As control
For Each mn In Me.Controls
If mn.Name Like "pb_*" Then
If mn.Name <> bname Then
If Me.Controls(mn.Name).Value = True Then Me.Controls(mn.Name).Value = False
Else
Me.Controls(mn.Name).Value = True
End If
End If
Next
End Sub


versucht, aber leider geht dies nur in eine Richtung.
Danke im Voraus.
Steffen Schmerler

AW: Userform Toggle Button rücksetzen
Ramses

Hallo
was verstehst du unter
"... ohne das die gedrückte Schaltfläche auch deaktiviert wird..."
Gruss Rainer

nähere erklärung meiner Frage
SteffenS

Also ich möchte folgendes erreiche:
Wenn ich eine meiner Umschaltflächen drücke so soll diese aktiviert werden und alle anderen (4) sollen deaktiviert werden.
Dabei möchte ich die Button nicht einzeln deaktivieren, sonder über eine Schleife.
Mein Problem dabei ist das bei meinem Code nicht 4 sondern alle 5 Toggle Button deaktiviert werden.
Ich weiß leider nicht wie ich die Schaltfläche herausbekomme die gerade gedrückt wird.
Könnt Ihr mit der Erklärung etwas mehr anfangen?
Danke nochmal
MFG
Steffen Schmerler

AW: nähere erklärung meiner Frage
Ramses

Hallo
Probier mal
Option Explicit

Private Sub ToggleButton1_Click()
    'Das muss in jedem Togglebutton stehen
    Reset_Togglebutton ActiveControl.Name
End Sub

Private Sub Reset_Togglebutton(tarName As String)
    Dim togObj As Object
    For Each togObj In Me.Controls
        If TypeName(togObj) = "ToggleButton" And togObj.Name <> "ToggleButton1" Then
            togObj.Value = False
        End If
    Next
End Sub

Gruss Rainer

Danke Dir
SteffenS

für Deine Hilfe,
das passt so :-))))
Steffen

AW: Danke Dir
Ramses

Hallo
Schön dass es passt, aber es ist wahrscheinlich Zufall,... denn diese Zeile
If TypeName(togObj) = "ToggleButton" And togObj.Name <> "ToggleButton1" Then
muss natürlich korrekt so lauten
If TypeName(togObj) = "ToggleButton" And togObj.Name <> tarName Then
Gruss Rainer