IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Probléme de lancement non désiré de macro événementielle à l'initialisation du UserForm [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut Probléme de lancement non désiré de macro événementielle à l'initialisation du UserForm
    Bonjour Forum,

    bon je bloque avec mon UserForm.
    Au moment de l'initialisation, je boucle sur tous les controles (CheckBox) contenus dans une frame pour les cocher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_Initialize()
    Dim ChkBx As Control
    For Each ChkBx In FrameSelection.Controls
        ChkBx.Value = True
    Next
    End Sub
    Le problème est que ce passage lance la procédure événementielle de chacune des CheckBox les unes après les autres. Ca fait des boucles interminables, les procédures événementielles des CheckBox sont toutes différentes les unes des autres et sont en interaction suivant leur valeur.

    Bref, ma question est:
    Comment est ce que je peux initialiser mon UserForm et donc définir les valeur des 20 CheckBox sans qu'à chaque fois la procédure événementielle de la CheckBox soit lancée?

    Merci d'avance infiniment pour votre aide.

  2. #2
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    As-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub UserForm_Initialize()
    Application.EnableEvents= false
    ' ton code
    Application.EnableEvents= true
    end sub

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
    Dim ChkBx As Control
    application.enableevents=false
    For Each ChkBx In FrameSelection.Controls
        ChkBx.Value = True
    Next
    application.enableevents=true
    End Sub

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut
    Merci beaucoup pour votre aide!
    Mais ca ne change strictement rien. Je l'ai mis partout où une CheckBox est modifiée par macro mais rien, nada.
    Je suis sûre qu'il existe une solution pour ca, mais je ne sais pas laquelle c'est...

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour melouille56 les amis alex & mercatog je vais peut être dire une bêtise mais tu veus mettre a l'initialisation tes CheckBoxs a true pourquoi dans proprietee de chaque CheckBox tu definis pas a true par defaut tu as plus de pb...non???

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    220
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 220
    Par défaut
    Merci Laetitia!!
    Ca m'a beaucoup aidé, mais malheureusement pas résolu totalement mon problème. Effectivement, grâce à ce que tu as dit, les macros evenementielles de chaque CheckBox ne se lancent plus à l'initialisation.
    Par contre, elles se lancent plus tard.

    Comment faire pour que les macros ne se lancent qu'apres une action de l'utilisateur mais pas apres une action lancée par une autre macro? Est ce que je dois appeler ma macro événementielle _Click? _Change? _AfterUpdate?

    Pour essayer de réumer, j'ai une CheckBox et 5 sous CheckBox. Au clic ou déclic de la CheckBox mère, ca coche ou décoche les 5 sous-CheckBox. Mais lorsque je ne décoche qu'une sous-CheckBox, je veux que la CheckBox mère se décoche (eh oui, il n'y a plus 5 mais 4 sous CheckBox de cochées). Et quand je lui demande de décocher la CheckBox mère, il comprend ca comme un clic de l'utilisateur, lance la macro événementielle de la mère, qui décoche donc à l'action toutes les sous-CheckBox. Et je ne veux pas.

    Je ne sais pas si j'ai été trés claire mais j'ai en tous cas essayé.

    Merci pour votre aide. Je suis dans une impasse.

  7. #7
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re,question la CheckBox "mere" est dans le meme frame que les 5 "sous" CheckBoxs ??? je dis cela pour peut etre pour utiliser la proprietee mousse move du frame.ou peut etre utiliser un module de classe.L'ideal serait zipper un exemple surtout la presentation de ton user avec quelques lignes de code je regarderais ce soir si pas de réponse d'ici la.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Non exécution de macro + problème format
    Par Le_ménéstrel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/07/2012, 13h05
  2. [AC-2000] Un problème de lancement macro excel
    Par Jason T dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/06/2009, 09h18
  3. [VBA-XL2007] Problème de lancement d'une macro d'un autre fichier au format xlsm
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/09/2008, 22h13
  4. Problème Code VBA, ajout non désiré sur bouton
    Par vivicente dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/06/2008, 17h33
  5. problème de passage non désiré dans l'action d'un click
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/04/2007, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo