OptionButton ne renvoie pas la bonne information
Résolu
irongege
Messages postés
43559
Date d'inscription
Statut
Modérateur
Dernière intervention
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai un groupe de 8 " optionsbutton ", lorsque je selectionne le 1er, j'ai bien l'info correspondante à cet " optionbutton" qui est enregistré dans une cellule " C24 ".
Lorsque je sélectionne un autre " optionbutton", je n'ai pas l'info correspondante dans cette cellule.
Le code :
Merci par avance et bonne journée
J'ai un groupe de 8 " optionsbutton ", lorsque je selectionne le 1er, j'ai bien l'info correspondante à cet " optionbutton" qui est enregistré dans une cellule " C24 ".
Lorsque je sélectionne un autre " optionbutton", je n'ai pas l'info correspondante dans cette cellule.
Le code :
Private Sub validtableenvoisalle_Click() If OptionButtonA.Value = True Then [C24] = "A" If OptionButtonB.Value = True Then [C24] = "B" If OptionButtonC.Value = True Then [C24] = "C" If OptionButtonD.Value = True Then [C24] = "D" If OptionButtonE.Value = True Then [C24] = "E" If OptionButtonF.Value = True Then [C24] = "F" If OptionButtonG.Value = True Then [C24] = "G" If OptionButtonH.Value = True Then [C24] = "H" End If End If End If End If End If End If End If End If CommandButtonenregis.Visible = True End Sub
Merci par avance et bonne journée
A voir également:
- OptionButton ne renvoie pas la bonne information
- Information d'identification réseau - Guide
- Vers quelle adresse web renvoie ce lien - Guide
- Renvoie d'appel ooredoo ✓ - Forum Free mobile
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum LibreOffice / OpenOffice
- En tête qui n'apparaît pas ✓ - Forum Bureautique
2 réponses
Salut Iron,
Le problème vient du fait que, si OptionButton A n'est pas coché, il sort du premier If. En effet, l'imbrication de tes If fait qu'il sort dès qu'il en rencontre une fausse.
Plusieurs solutions donc :
Avec des ElseIf :
Avec des End If :
Ou plus "élégant" :
Le problème vient du fait que, si OptionButton A n'est pas coché, il sort du premier If. En effet, l'imbrication de tes If fait qu'il sort dès qu'il en rencontre une fausse.
Plusieurs solutions donc :
Avec des ElseIf :
Private Sub validtableenvoisalle_Click()
If OptionButtonA.Value = True Then
[C24] = "A"
ElseIf OptionButtonB.Value = True Then
[C24] = "B"
ElseIf OptionButtonC.Value = True Then
[C24] = "C"
ElseIf OptionButtonD.Value = True Then
[C24] = "D"
ElseIf OptionButtonE.Value = True Then
[C24] = "E"
ElseIf OptionButtonF.Value = True Then
[C24] = "F"
ElseIf OptionButtonG.Value = True Then
[C24] = "G"
ElseIf OptionButtonH.Value = True Then
[C24] = "H"
End If
End Sub
Avec des End If :
Private Sub validtableenvoisalle_Click() If OptionButtonA.Value = True Then [C24] = "A" End If If OptionButtonB.Value = True Then [C24] = "B" End If If OptionButtonC.Value = True Then [C24] = "C" End If If OptionButtonD.Value = True Then [C24] = "D" End If If OptionButtonE.Value = True Then [C24] = "E" End If If OptionButtonF.Value = True Then [C24] = "F" End If If OptionButtonG.Value = True Then [C24] = "G" End If If OptionButtonH.Value = True Then [C24] = "H" End If End Sub
Ou plus "élégant" :
Private Sub validtableenvoisalle_Click() If OptionButtonA.Value = True Then [C24] = "A" If OptionButtonB.Value = True Then [C24] = "B" If OptionButtonC.Value = True Then [C24] = "C" If OptionButtonD.Value = True Then [C24] = "D" If OptionButtonE.Value = True Then [C24] = "E" If OptionButtonF.Value = True Then [C24] = "F" If OptionButtonG.Value = True Then [C24] = "G" If OptionButtonH.Value = True Then [C24] = "H" End Sub
irongege
Messages postés
43559
Date d'inscription
Statut
Modérateur
Dernière intervention
5 082
Merci de ces codes ;-))))
Sujet résolu avec ce code :
Private Sub validtableenvoisalle_Click()
Dim x As Control
For Each x In choixtable.Controls 'Loop through the option buttons
'within the Frame
If x.Value = True Then
[C24] = x.Caption 'Display the name of the selected
End If 'option button
Next
CommandButtonenregis.Visible = True
End Sub
Salut,
Effectivement, nous n'avions pas toutes les cartes en main pour te solutionner le souci de la sorte. Il nous manquait les caption de tes OptionButton.
Par contre, tu peux également ajouter un Exit For qui sortira de la boucle dès qu'elle aura rencontré un "True" sur sa route. En effet, inutile de boucler sur tous si c'est bon dès le premier. De plus, un test est appréciable pour vérifier que le contrôle en question est bien un optionbutton... Au cas ou par la suite, tu ajouterais des CheckBox par exemple...
A+
Effectivement, nous n'avions pas toutes les cartes en main pour te solutionner le souci de la sorte. Il nous manquait les caption de tes OptionButton.
Par contre, tu peux également ajouter un Exit For qui sortira de la boucle dès qu'elle aura rencontré un "True" sur sa route. En effet, inutile de boucler sur tous si c'est bon dès le premier. De plus, un test est appréciable pour vérifier que le contrôle en question est bien un optionbutton... Au cas ou par la suite, tu ajouterais des CheckBox par exemple...
Private Sub validtableenvoisalle_Click()
Dim Ctrl As Control
For Each Ctrl In choixtable.Controls 'Loop through the option buttons
'within the Frame
If TypeName(Ctrl) = "OptionButton" And Ctrl.Value = True Then
[C24] = Ctrl.Caption 'Display the name of the selected
Exit For 'option button
End If
Next Ctrl
CommandButtonenregis.Visible = True
End Sub
A+