jojo255
Messages postés5Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention 9 août 2006
-
9 août 2006 à 22:52
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
10 août 2006 à 00:19
Bonjour,
Je suis nouveau et je débute sous VBA.
Sur une feuille excel j'ai créé 18 boutons OptionButton.
Ce que je souhaite c'est de savoir parmi les 18, lequel sera sélectionné (cad que value = true)
Pour l'instant j'utilise un gigantesque if qui test tous mes OptionButton pour vérifier lequel a comme valeur true, mais c'est assez en VBA
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 août 2006 à 23:44
Ca y'est j'ai trouvé :
Sub Test()
Dim ctl As OLEObject
Dim Saisie As String
'*** pas en Integer : c'est pour y placer des nombres
For Each ctl In ActiveSheet.OLEObjects
If TypeOf ctl.Object Is MSForms.OptionButton Then
If ctl.Object.Value True Then Saisie ctl.Object.Caption: MsgBox Saisie
'*** si le ctl (optionbutton) est coché, on place dans Saisie son caption puis
' affichage dans une message box
End If
Next ctl
jojo255
Messages postés5Date d'inscriptionmercredi 9 août 2006StatutMembreDernière intervention 9 août 2006 9 août 2006 à 23:09
j'ai ce message d'erreur :
Membre de méthode ou de donné introuvable.
une petite précision, une fois l'optionButton true trouvé, je souhaite récupérer sa donnée se trouvant dans caption, et la mettre dans une nouvelle varaiable.
Le nom de chacun de mes OptionButton est OptionButton1, OptionButton2, ... , OptionButton16
si j'adapte ton prog, a ce que je veux faire, est ce correct de l'écrire ainsi
Dim ctl As Control
Dim Saisie As Integer
For Each ctl In Me.Controls
If TypeName(ctl) = "OptionButton" Then If ctl.Value True Then Saisie.value ctl.Name
End If
Next ctl
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 août 2006 à 23:18
Humm t'es en VBA Excel ?
Je viens de faire le test et ça fonctionne parfaitement.
Quelques modifs :
Private Sub CommandButton1_Click()
Dim ctl As Control
Dim Saisie As String
'*** pas en Integer : c'est pour y placer des nombres
For Each ctl In Me.Controls
If TypeName(ctl) = "OptionButton" Then
If ctl.Value True Then Saisie ctl.Caption: MsgBox Saisie
'*** si le ctl (optionbutton) est coché, on place dans Saisie son caption puis
' affichage dans une message box
End If
Next ctl
End Sub
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 août 2006 à 23:24
"For Each ctl In Me.Controls
Je pense que c'est Controls qui merdouille"
=> moi je pense que c'est le Me. La procédure que je t'ai donné se trouve t-elle bien dans le UserForm où sont contenus les OptionButton ?
Si ce n'est pas le cas, remplace Me par le nom du UserForm en question.
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"