Macro EXCEL : Réinitialisation case d'options

Résolu
Peyo -  
 Peyo -
Bonjour à tous et d'avance merci beaucoup pour votre aide !

Après maintes recherches, je ne suis pas arrivé à trouver mon erreur, je vous soumets donc mon problème très simple.

Sous Excel 2007, avec le contrôle de formulaires, j'ai créé 2 cases d'options (appelons-les "CASE 1" et "CASE 2") contenues dans une zone de groupe.

Je veux affecter à un bouton (contrôle de formulaires) une macro de réinitialisation, telle que, à son exécution, je coche CASE 1 (et décoche par conséquent CASE 2) et ce quelle que soit la case cochée par l'utilisateur (1 ou 2).

Pratiquant le VBA depuis environ 2 heures, j'ai essayé le code suivant dans mon module 1 :
Sub Reinitialisation_case_option() 
     OptionButton(1).Select 
     Selection.Value = False 
     OptionButton(2).Select 
     Selection.Value = True 
End Sub 


Lorsque j'exécute, le message d'erreur suivant apparaît :
"Erreur de compilation :
Sub ou Function non définie."

Pourriez-vous me dire quelle(s) erreur(s) - probablement grossière(s) - je commets ?

MERCI BEAUCOUP D'AVANCE :D !
A voir également:

6 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour tous,
Tu dis...il me faut maintenant remplacer tous mes contrôles de formulaires par des contrôles ActiveX (je n'en ai pas seulement 2, snif !)
Une solution pour remplacer tes optionB automatiquement.
Donne aussi la possibilité de tester tout les contrôles en 3 lignes de code.
La démo ajoute des boutons mais il est facile de remplacer par des OptionB dans le code.
D'accord, c'est compliquer, mais avec un peu de persévérance tu peu y arriver.
Maintenant, si tu à 20.. ou plus d'OptionB formulaire tu à la commande (malheureusement en deux fois, ça marche pas autrement)
ActiveSheet.Shapes("Option Button 1").Select
Selection.Value = xlOff

Ou xlOn pour le cocher et bien sûr, entre les guillemets c'est chaque fois le nom du bouton.
Tu te vois copier ces 40.. lignes pour les initialiser et c'est pas tout, encore 40 lignes + Les If Then pour les tester ??
Quoi qu'il en soit, bon courage.
A+
7
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Hum, j'avais pas vu.
Pour connaitre le nom du contrôle.
Clic droit sur le contrôle >> Format de contrôle >> dans la fenêtre qui s'ouvre >> Web
Et tu a le nom du contrôle.
Mais tu est conscient qu'il n'y aura jamais qu'un seul Option qui serra sélectionner ?
Quand tu clic sur l'un, l'autre se met à zéro..
Tu est sûr que ce sont des Option et pas des CheckBox ?
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
bonjour

utilises plutôt les contrôles activeX (afficher/boite à outils contrôles) qui sont plus commodes à manipuler.
le petit triangle bleu est une bascule mode création/mode exécution

le code suivant devrait alors fonctionner

Sub Reinitialisation_case_option()
Sheets(1).OptionButton1.Value = False
Sheets(1).OptionButton2.Value = True
End Sub

bonne suite
0
Peyo
 
Merci beaucoup pour la réponse ccm81 !

Le problème avec ta solution est qu'il me faut maintenant remplacer tous mes contrôles de formulaires par des contrôles ActiveX (je n'en ai pas seulement 2, snif !) ... Quelqu'un aurait-il une autre idée ?

Par ailleurs, dans les propriétés des cases d'options ActiveX, j'ai un souci avec le fond "Backcolor" : comment le rendre soit transparent (comme le Backstyle), soit lui donner la couleur que je veux (qui n'est évidemment pas dans la palette proposée ...) ?

Merci beaucoup d'avance !
0
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   645
 
Bonjour,

Je ne sais pas si j'ai bien compris le problème mais il me semble qu'il suffit d'écrire cela dans le code associé au bouton :

Private Sub Reinitialisation_case_option_Click()      
   OptionButton1.Value = False     
   OptionButton2.Value = True    
End Sub


sachant que OptionButton1 et OptionButton2 sont les noms des cases options du formulaire et Reinitialisation_case_option le nom du bouton

A+

Cordialement,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Peyo
 
Merci beaucoup pour la réponse pilas31 !

Alors, il est probable que je dise de grosses bêtises (je découvre tout juste le VBA), mais ton code ne fonctionne-t-il pas que pour des contrôles ActiveX ?

Je demande car à priori cela ne fonctionne pas avec mes contrôles de formulaires alors que ça fonctionne si j'essaye avec des contrôles ActiveX.

Si ce n'est pas le cas, comment puis-je connaître le nom de mes cases d'options et de mon bouton ?

Merci beaucoup !
0
Peyo
 
Merci beaucoup pour ta réponse lermite222 !

En fin de compte, j'ai opté pour des boutons et cases d'options en contrôle ActiveX, je ne referai plus "l'erreur" !

Du coup, par coquetterie, j'en reviens à une de mes questions préalables : dans les propriétés des cases d'options ActiveX, j'ai un souci avec le fond "Backcolor" : comment le rendre soit transparent (comme le Backstyle), soit lui donner la couleur que je veux (qui n'est évidemment pas dans la palette proposée ...) ?

Merci d'avance pour votre aide !
0
Peyo
 
Je réponds à ma propre question :
"propriétés" de l'objet => "backcolor" => "palette" => clic droit

Youpi !!!

Merci à tous !
0