• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

grote groep van optionbuttons

Status
Niet open voor verdere reacties.

Bakkerken

Gebruiker
Lid geworden
14 dec 2014
Berichten
46
Collega Excell fanaten,

vraagje ivm optionbuttons.

Ik heb een userform met hierin ongeveer 200 optionbuttons in 1 groep.
Is er een mogelijkheid om deze te definieren in een algemene code ipv
IF me.optionbutton1.value = true then.......
IF me.optionbutton2.value = true then.......
enz.....

Bedoeling is wanneer optionbutton1 is aangeklikt hij in bepaalde cel ook nr 1 weergeeft.
Indien optionbutton2 is aangeklikt komt 2 in die cel.... enz....

Het is dus een vrij lange en eindeloze code indien ik dit voor alle optionbuttons apart dien te doen (maar werkt wel dus dat is zeker OK)
Mogelijks kan dit iets makkelijker?

Alvast bedankt om jullie kennis te delen
 
als je wilt dat het bij het klikken op de Optionbutton al iets gaat werken zal je 200 click events moeten hebben. ALs je wilt dat het naderhand ( bijv. commandbutton) gebeurt, zal het met een stuk minder code kunnen.

Plaats eens een (voorbeeld) bestand.
 
Laatst bewerkt:
Bedoeling is wanneer optionbutton1 is aangeklikt hij in bepaalde cel ook nr 1 weergeeft.

Als het om een lijst van getallen gaat waar zo'n optionbutton bij staat, zou ik er voor kiezen om een Dropdown Combobox in te zetten. Je laat de gebruiker dan uit 1 van de waardes uit de dropdownlijst kiezen die je vervolgens makkelijk kan wegschrijven naar de sheet.

Het voorbeeldbestand - wat SjonR ook al aangaf - is dus wel handig.
 
Voorbeeldbestand.

Voorlopig enkel code bij eerste 10 buttons, maar dienen er dus ongeveer 200 te worden
= graag keuze bij optionbuttons laten, ikv makkelijk gebruik (file voor meerdere gebruikers)
 

Bijlagen

  • optionbutton.xlsm
    22,9 KB · Weergaven: 63
Voor alle Optionbuttons.
Code:
Private Sub Save_Click()
Dim ctrl As Control
For Each ctrl In Controls
   If TypeName(ctrl) = "OptionButton" Then
     If ctrl = True Then
       With Cells(Rows.Count, 2).End(xlUp)
        .Offset(1) = ctrl.Caption
        .Offset(1, -1) = Time
       End With
     End If
   End If
 Next ctrl
Unload Me
End Sub
 
Super. Werkt perfect!!!

Waar precies plaats ik in deze code de msgbox voor het geval er geen nummer is geselecteerd?
 
Code:
Private Sub Save_Click()
Dim ctrl As Control
For Each ctrl In Controls
   If TypeName(ctrl) = "OptionButton" Then
     If ctrl Then
       With Cells(Rows.Count, 2).End(xlUp)
        .Offset(1) = ctrl.Caption
        .Offset(1, -1) = Time
       End With
      y = 1
     End If
   End If
 Next ctrl
 If y = 0 Then
    MsgBox "geef een nummer in"
  Else
    Unload Me
End If
End Sub
 
Graag gedaan; kan ook zo.
Code:
Private Sub Save_Click()
Dim ctrl As Control
For Each ctrl In Controls
   If TypeName(ctrl) = "OptionButton" Then
     If ctrl Then
       Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 2) = Array(Time, ctrl.Caption)
       y = 1
     End If
   End If
 Next ctrl
 If y = 0 Then
    MsgBox "geef een nummer in"
  Else
    Unload Me
End If
End Sub
 
Bijkomende vraag:
in een volgend userform zou ik opnieuw deze werkwijze hanteren om bijkomende zaken in te vullen, dan zou echter de cel moeten geselecteerd worden waar dit bepaald nummer (dat via optionbutton is gekozen op dat moment) is ingevuld.
Dit lukte me in het verleden reeds met togglebuttons maar krijg dit niet in orde voor de optionbuttons
(code van de togglebuttons voorzien in userform 2als vb wat ik in het verleden deed, maar krijg ik dus niet in orde voor de optionbuttons)

Kan iemand me verder helpen?
Alvast heel veel dank

Bekijk bijlage optionbutton.xlsm
 
Waarom geen spinbutton met min 1 en max 45 ?
 
Een keuzelijst met invoervak (of een tekstvakje met een spinner, zoals snb zegt) is voor een dergelijke selectie veel geschikter als je het mij vraagt. Het is dan gelijk veel simpeler om uit meer of minder mogelijkheden te kiezen.
 
De optionbuttons leken me overzichtelijker omdat dit door een ruim aantal personen dient gebruikt te worden.
Indien dit niet mogelijk is om een nummer te zoeken op deze manier kijk ik uit naar iets anders (evt de spinbutton dan, dank voor de tip)
Als iemand toch kan helpen om dit via de optionbuttons te doen, dan graag.
 
Omdat je zo aandringt op de optionbuttons.
Code:
Private Sub Save_Click()
Dim ctrl As Control
For Each ctrl In Controls
   If TypeName(ctrl) = "OptionButton" Then
     If ctrl Then
      r = Application.Match(CLng(ctrl.Caption), Columns(2), 0)
        If Not IsError(r) Then
          Cells(r, 2).Select
          y = 1
        End If
    End If
   End If
 Next ctrl
 If y = 0 Then
    MsgBox "geef een nummer in, of dit nummer is niet aanwezig"
  Else
    Unload Me
End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan