Empêcher l'évènement "click" sur OptionButton

ailete

XLDnaute Nouveau
Bonjour,
j'ai un formulaire avec plusieurs optionbutton.
Je peux enregistrer ce formulaire, et donc l'état des optionbutton en listant leur value dans une feuille Excel que je rattache aux controles par la propriété ControlSource.
J'ai des actions qui s'effectuent sur l'évènement "Click" de quelques uns de ces optionbutton.

J'aimerais empêcher que le programme entre dans l'évènement Click, lorsqu'au chargement d'un formulaire sauvegardé, la valeur d'un optionbutton passe à TRUE.

Est-ce possible selon vous?

Merci d'avance!!
 

pijaku

XLDnaute Occasionnel
Re : Empêcher l'évènement "click" sur OptionButton

Bonjour,
Pas sur d'avoir bien cerné la demande, mais je vous propose :
lorsqu'au chargement d'un formulaire sauvegardé, la valeur d'un optionbutton passe à TRUE. Supposons que cet OptionButton s'appelle : Optionbutton1
J'aimerais empêcher que le programme entre dans l'évènement Click Alors dans chaque événement click de tes optionbutton il faut ajouter :
Code:
Private Sub OptionButton2_Click()
If optionButton1 = True Then Exit Sub
'ton code ici
End Sub
 

Papou-net

XLDnaute Barbatruc
Re : Empêcher l'évènement "click" sur OptionButton

Bonjour ailete,

A priori, mais sans être absolument affirmatif, ça semble impossible. La solution la plus simple que j'imagine est de régler la propriété Enabled à False pour empêcher le Click.

Espérant avoir aidé.

Cordialement.

EDIT : bonjour pijaku,

Ta solution ne résout rien, car si le bouton est déjà à True, le Click n'a aucun effet. Me trompé-je ?
 
Dernière édition:

ailete

XLDnaute Nouveau
Re : Empêcher l'évènement "click" sur OptionButton

Ahhh c'est ce que je craignais..
Une des actions qui est pricipalement engendrée sur le click d'un optionbutton est la gestion de la propriété enabled sur d'autres controles, alors ca risque d'être un peu compliqué de contourner ceci avec un réglage à False de la propriété Enabled... Malheureusement.

Le souci est que quand je charge mes données d'un formulaire enregistré, Excel plante et donc je me suis dit que c'était le fait d'aller effectuer toutes les opérations liées au Click lorsqu'il chargeait les valeurs à True des optionbutton qui consommait trop de mémoire...

(J'ai plus de 300 optionbutton dans le formulaire donc bon... ^^)
 

pijaku

XLDnaute Occasionnel
Re : Empêcher l'évènement "click" sur OptionButton

@ Papou net :
Cela dépends de l'interprétation de la question initiale. Visiblement je n'ai pas saisi la problématique.

Voici toutefois un exemple de comment j'ai appréhendé la question (juste au cas ou...)
Classeur exemple ouvrez, activez les macros et cliquez sur le bouton TEST...
 

ailete

XLDnaute Nouveau
Re : Empêcher l'évènement "click" sur OptionButton

@Pijaku : pas mal comme idée, j'ai testé pour un optionbutton, le programme plante quand même. Alors que si je commente les actions effectuées pour le click, il charge bien la value de l'optionbutton et Excel ne plante pas... donc je n'y comprends plus rien.

@kjin : épurer mon fichier des choses confidentielles, vu sa taille, me prendrai plus de temps que de tester toutes les méthodes possibles pour résoudre mon problème, sinon je vous aurai filé un fichier exemple ;)
 

pijaku

XLDnaute Occasionnel
Re : Empêcher l'évènement "click" sur OptionButton

j'ai testé pour un optionbutton, le programme plante quand même 2 questions :
- Il eut peut êter fallut le tester sur tous
2- le programme plante : Ca c'est typiquement une phrase à bannir des forums. Elle manque cruellement de précision. Message d'erreur? refus de fonctionner?
Essaie de le faire fonctionner en Mode "Pas à Pas" pour voir ou le programme "plante" et Kesskidi !!

Sinon, à ce stade, je recommande de prendre le temps de faire un fichier épuré comme le suggère kijn, car à l'aveugle on risque de pas aller bien loin...
Tu dis!
 

ailete

XLDnaute Nouveau
Re : Empêcher l'évènement "click" sur OptionButton

Du calme pijaku...
je l'ai testé pour un optionbutton parce que j'en ai 300.. s'il ne fonctionne pas avec le code sur un, et fonctionne sur 300, j'abandonne la programmation à vie...

Deuxièmement, le programme plante : Microsoft Excel, en gros, fenêtre Windows : "Excel a rencontré un problème et ne répond pas, fermer le programme"

Troisièmement, si je l'exécute en pas à pas, tout fonctionne, même si je mets un point d'arrêt avant le chargement des données et que je resume l'exécution, tout fonctionne... c'est pour ça que je me suis dit que c'était un problème de consommation de ressources...

ps: j'ai mis des Application.Wait un peu partout pour permettre à l'appli de se calmer entre 2 fonctions, ça ne change rien
 

pijaku

XLDnaute Occasionnel
Re : Empêcher l'évènement "click" sur OptionButton

1- Du calme pijaku... Ou tu vois que je m'énerve? Il n'y a pas plus calme et serein que pijaku!

2- A défaut de fichier, peut être qu'une description précise du contenu des feuilles + copie de tous les codes utilisés dans ce classeur pourrait nous aiguiller...

Tu dis...
 

ailete

XLDnaute Nouveau
Re : Empêcher l'évènement "click" sur OptionButton

Juste une petite question qui me vient comme ça étant donné que si on fait une pause dans l'exécution puis qu'on la relance, ça fonctionne.
Est-il possible de simuler ça? Par exemple que le programme se mette en pause et qu'en cliquant sur un bouton cela reviendrait à faire F5 ?
 

pijaku

XLDnaute Occasionnel
Re : Empêcher l'évènement "click" sur OptionButton

il y a plusieurs façons de mettre une procédure en pause, mais cela nous étonnerais tous ici que ton souci vienne de là.
Si malgré tout tu souhaites essayer, tape VBA + pause macro sous google.

Si tu souhaites que nous continuions à t'aider, réponds à nos diverses interrogation.

A te lire
 

ailete

XLDnaute Nouveau
Re : Empêcher l'évènement "click" sur OptionButton

Je ne dis pas que mon problème vient de là Pijaku... j'essaye juste de trouver une parade étant donné qu'un point d'arrêt dans l'application et un Resume de l'exécution fonctionnent je me suis demandé s'il n'était pas possible de créer un point d'arrêt sans que l'utilisateur tombe sur la fenêtre VBA et qu'il puisse "relancer" l'exécution en cliquant sur un bouton "Poursuivre" par exemple.

Pour le "vba pause macro", merci j'ai déjà fait mes recherches avant de poser la question. Sur google, on nous parle de application.wait qui nécessite que l'on donne un intervalle de temps durant lequel la pause se fait... ce n'est pas ca que je cherche.
Mais merci quand même.

Sinon, dans mon fichier, j'ai sur une colonne (la colonne A) les valeurs que doivent prendre mes différents contrôles.
Ces lignes sont créées lors de l'enregistrement du formulaire, puis chargées à l'ouverture d'un formulaire enregistré pour affecter les bonnes "Value" aux différents optionbutton.

En gros j'ai par exemple à l'enregistrement :

ActiveWorkbook.Sheets(1).Cells(1,1) = OptionButton1.Value

Et au chargement d'un formulaire enregistré :

OptionButton1.ControlSource = "feuil1!A1"

Tout ça bien évidemment dans une boucle pour pouvoir enregistrer et charger les valeurs de tous mes optionButton.
 

pijaku

XLDnaute Occasionnel
Re : Empêcher l'évènement "click" sur OptionButton

on avance...
Peux t'on, s'il te plait, avoir ici une copie de tout tes codes VBA?
Surtout ceux qui concernent :
1- le "chargement" du formulaire
2- les événements click

Au fait, lorsque tu dis "formulaire", s'agit il d'un UserForm???
 

Statistiques des forums

Discussions
312 160
Messages
2 085 840
Membres
103 001
dernier inscrit
vivinator