ToggleButton beïnvloeden

Status
Niet open voor verdere reacties.

EdWel

Gebruiker
Lid geworden
23 sep 2008
Berichten
104
Waarde meedenkers,
Ik wil ipv. Keuzerondjes ToggleButtons gebruiken omdat je deze zo groot kunt maken als je wilt. Druk je 1 button in, dan moet de reeds ingedrukte button uitspringen.
Hier had ik deze niet goed werkende code voor bedacht:

Private Sub ToggleButton1_Click()
Madiwo ("10000")
End Sub

Private Sub ToggleButton2_Click()
Madiwo ("01000")
End Sub

Private Sub ToggleButton3_Click()
Madiwo ("00100")
End Sub

Private Sub ToggleButton4_Click()
Madiwo ("00010")
End Sub

Private Sub ToggleButton5_Click()
Madiwo ("00001")
End Sub

Sub Madiwo(Keuze)
ToggleButton1.Value = Mid(Keuze, 1, 1)
ToggleButton2.Value = Mid(Keuze, 2, 1)
ToggleButton3.Value = Mid(Keuze, 3, 1)
ToggleButton4.Value = Mid(Keuze, 4, 1)
ToggleButton5.Value = Mid(Keuze, 5, 1)
End Sub

Bij de eerste keer werkt het, daarna niet meer.
Iemand enig idee? Vast bedankt!
 
Welke waarden kan een ToggleButton volgens jou aannemen ?
Volgens mij: True of False.
Jouw code is daarmee niet in overeenstemming.
 
Hallo SNB,
Fijn dat je reageert. Ik heb het volgende geprobeerd, maar werkt net zo min:

Private Sub ToggleButton1_Click()
ToggleButton1.Value = True
ToggleButton2.Value = False
ToggleButton3.Value = False
End Sub
Private Sub ToggleButton2_Click()
ToggleButton1.Value = False
ToggleButton2.Value = True
ToggleButton3.Value = False
End Sub
Private Sub ToggleButton3_Click()
ToggleButton1.Value = False
ToggleButton2.Value = False
ToggleButton3.Value = True
End Sub

Wat nu?
 
Volgens mij kies je om de verkeerde reden voor de verkeerde objecten.
Optieknoppen zijn er voor gemaakt.
Besteed wat meer tijd aan logica.

Code:
Private Sub ToggleButton1_Click()
  With ToggleButton2
    .Value = not toggleButton1.value
    ToggleButton3.Value =.Value
  End With 
End Sub
 
Hallo snb,

Het is de bedoeling dat de button welke wordt aangeklikt ingedrukt word, ongeacht of deze al ingedrukt was of niet. De andere twee moeten dan uitspringen.
Ik heb jouw code uitgewerkt voor de 3 buttons, maar het werkt jammer genoeg niet, Excel loopt zelfs vast. Wat kan er nu fout zijn?

Code:
Private Sub ToggleButton1_Click()
  With ToggleButton2
    .Value = Not ToggleButton1.Value
    ToggleButton3.Value = .Value
  End With
End Sub

Private Sub ToggleButton2_Click()
  With ToggleButton1
    .Value = Not ToggleButton2.Value
    ToggleButton3.Value = .Value
  End With
End Sub

Private Sub ToggleButton3_Click()
  With ToggleButton1
    .Value = Not ToggleButton3.Value
    ToggleButton2.Value = .Value
  End With
End Sub

Ik wil grote, duidelijke knoppen zodat iemand met een handicap niet op zo'n klein rondje hoeft te mikken.

Groet, Ed
 
Ik wil grote, duidelijke knoppen zodat iemand met een handicap niet op zo'n klein rondje hoeft te mikken
Dat hoeft ook niet. Het hele gebied van de caption van de optionbutton kan aangeklikt worden. Dus je kunt een optionbutton net zo groot en gebruiksvriendelijk maken als een wisselknop.
 
Hoi snb,

Na vele uren puzzelen ben ik er uit.
Zowel jouw als mijn code werkt als je Click vervangt door BeforeUpdate. Vraag me niet waarom, maar het werkt.
Het hele gebied van de OptionButton kan inderdaad aangeklikt worden, maar ik vind dit nu eenmaal mooier en vooral duidelijker.
Desalniettemin hartelijk dank voor het meedenken en je reacties !!

Groet, Ed
 
Click vervangen door BeforeUpdate?

Ik heb geprobeerd click te vervangen door BeforeUpdate, Zowel in de subroutines als bij het userform, maar dat geeft storing, of de buttons komen niet in beeld.
Heb je de code misschien nog? Ik zou graag zien wat ik verkeerd doe.
 
Laatst bewerkt:
Heb je hier wat aan?
Al maak je 25 ToggleButtons, het werkt en de code is kort:

Code:
Private Sub ToggleButton1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  Keuze ("10000")
End Sub

Private Sub ToggleButton2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  Keuze ("01000")
End Sub

Private Sub ToggleButton3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  Keuze ("00100")
End Sub

Private Sub ToggleButton4_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  Keuze ("00010")
End Sub

Private Sub ToggleButton5_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  Keuze ("00001")
End Sub

Sub Keuze(Keuze)
  ToggleButton1.Value = Mid(Keuze, 1, 1)
  ToggleButton2.Value = Mid(Keuze, 2, 1)
  ToggleButton3.Value = Mid(Keuze, 3, 1)
  ToggleButton4.Value = Mid(Keuze, 4, 1)
  ToggleButton5.Value = Mid(Keuze, 5, 1)
End Sub

Succes !
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan