Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PB exécution procédures VBA en boucle

1 réponse
Avatar
Herdet
Bonsoir à tous,
Je suis confronté à un problème de VBA qui a sûrement une solution simple.
Mes multiples essais n'ont pas été concluants.

Une Userform avec 1 Multipage comporte :
- une procédure d'initialisation UserForm_Initialize qui exécute 5 sous
programmes d'initialisation des 5 pages du Multipage
- plusieurs procédures Change associées à des Combobox
- une procédure de calcul commun qui doit être exécutée par chacune des
procédures Change seulement si la Combo est modifiée.

L'initialisation se passe bien si je place un "FLinit=1" dans la proc
Initialize et un "If FLinit=1 Then Exit sub" dans chaque procédure Change.
FLinit est remis à 0 à la fin de l'initialisation
Le pb est que après chaque nouvelle sélection dans une Combo quelconque, la
procédure de calcul est exécutée 31 fois ce qui veut dire que toutes les
Combobox ont été réexécutées alors qu'elles n'ont pas été modifiées !
Comment peut-on éviter ce bouclage continuel ... si vous voyez ce que je
dire ?

Merci de votre aide
Robert Dezan

1 réponse

Avatar
isabelle
salut Herdet,

as tu introduis une commande DoEvents, dans ces procédures ?

isabelle

Bonsoir à tous,
Je suis confronté à un problème de VBA qui a sûrement une solution simple.
Mes multiples essais n'ont pas été concluants.

Une Userform avec 1 Multipage comporte :
- une procédure d'initialisation UserForm_Initialize qui exécute 5 sous
programmes d'initialisation des 5 pages du Multipage
- plusieurs procédures Change associées à des Combobox
- une procédure de calcul commun qui doit être exécutée par chacune des
procédures Change seulement si la Combo est modifiée.

L'initialisation se passe bien si je place un "FLinit=1" dans la proc
Initialize et un "If FLinit=1 Then Exit sub" dans chaque procédure Change.
FLinit est remis à 0 à la fin de l'initialisation
Le pb est que après chaque nouvelle sélection dans une Combo quelconque, la
procédure de calcul est exécutée 31 fois ce qui veut dire que toutes les
Combobox ont été réexécutées alors qu'elles n'ont pas été modifiées !
Comment peut-on éviter ce bouclage continuel ... si vous voyez ce que je
dire ?

Merci de votre aide
Robert Dezan