OVH Cloud OVH Cloud

for each sur des optionbutton

2 réponses
Avatar
sebiwane
j'ai fait un macro pour d=E9sactiver les optionbutton si ma feuille est
prot=E9g=E9, seulement voil=E0, j'ai du foirer quelques chose car je me
choppe l'erreur suivante :

* runtime error 13 - type mismatch.

Apparement, mon objet "ctrl" n'existe pas ou n'est pas "rempli" par les
diff=E9rents optionbutton de la feuille - quand je place ma souris
dessus lors du debugging, il met "empty"

voici ma macro.. une id=E9e? et si vous avez plus simple, je suis aussi
preneur.

merci - seb

Private Sub Worksheet_Activate()

If Sheet1.ProtectContents =3D True Then
For Each ctrl In Controls
If TypeOf ctrl Is MSForms.OptionButton Then
ctrl.Enabled =3D False
End If
Next
Else
For Each ctrl In Controls
If TypeOf ctrl Is MSForms.OptionButton Then
ctrl.Enabled =3D True
End If
Next
End If
End Sub

PS : j'ai d=E9j=E0 cherch=E9 dans les messages pr=E9c=E9dents mais malgr=E9
les changements, je reste au m=EAme r=E9sultat.

2 réponses

Avatar
isabelle
bonjour sebiwane,

voie la réponse de AV, sur ce lien.

http://groups.google.com/groups?q=If+TypeOf+group:microsoft.public.fr.excel&start0&hl=fr&lr=&scoring=d&selm?4736b5%241_2%40news.bluewin.ch&rnum9

isabelle


j'ai fait un macro pour désactiver les optionbutton si ma feuille est
protégé, seulement voilà, j'ai du foirer quelques chose car je me
choppe l'erreur suivante :

* runtime error 13 - type mismatch.

Apparement, mon objet "ctrl" n'existe pas ou n'est pas "rempli" par les
différents optionbutton de la feuille - quand je place ma souris
dessus lors du debugging, il met "empty"

voici ma macro.. une idée? et si vous avez plus simple, je suis aussi
preneur.

merci - seb

Private Sub Worksheet_Activate()

If Sheet1.ProtectContents = True Then
For Each ctrl In Controls
If TypeOf ctrl Is MSForms.OptionButton Then
ctrl.Enabled = False
End If
Next
Else
For Each ctrl In Controls
If TypeOf ctrl Is MSForms.OptionButton Then
ctrl.Enabled = True
End If
Next
End If
End Sub

PS : j'ai déjà cherché dans les messages précédents mais malgré
les changements, je reste au même résultat.



Avatar
AV
Si j'ai bien compris ce que tu voulais faire :

Private Sub Worksheet_Activate()
With ActiveSheet
For Each sh In .OLEObjects
If sh.Name Like "OptionButton*" Then
If .ProtectContents = True Then
.OLEObjects(sh.Name).Object.Value = False
Else: .OLEObjects(sh.Name).Object.Value = True
End If
End If
Next
End With
End Sub

AV