ProgressBar dans une Form pendant une macro?

  • Initiateur de la discussion Matthieu
  • Date de début
M

Matthieu

Guest
Salut,

Je pense que mon problème pourra petre utilisez souvent par le suite !
J'ai une feuille excel avec un module et des macros codées dedans.
Je souhaiterais pendant le déroulement de ma macro afficher son état d'avance (macro assez longue).

J'ai donc créé une form, j'ai ajouté le controle progressbar.

J'ai mis les variables de mon module en public afin de pouvoir y acceder depuis ma form (me corriger s'il y a une autre solution plus propre)

Dans mon module je fais un frm_ma_form.show puis dans la section initialize de frm_ma_form j'incrémente ma progressbar.

J'ai plusieurs problème !!!
Le code de l'initialize s'execute mais je ne vois pas la fenetre !! A la fin de mon initialize il plante sur frm_ma_form.show.

Si qlq pouvait m'éclairer ca serait super.

Merci a vous tous !
 
@

@+Thierry

Guest
Bonjour Matthieu, le Forum

Pour tes explications, oui tu peux mettre tes variables dans un Module Standard déclarées Public en Top de celui-ci, afin de pouvoir y accéder depuis ton UserForm.

Pour le reste, normalement il n'y a rien à mettre dans l'initialisation du UserForm en ce qui concerne la ProgressBar elle-même, mais tout ceci dépend de la structure des actions que ta procédure doit faire.

Je te propose une démo assez simple de ProgressBar :

=> Fichier Téléchargeable Lien supprimé

=> Fil de Discussion Lien supprimé

Ce qui est impératif dans tous les cas de figure, il te faut une boucle pour pouvoir incrémenter la progression.

Bon Appétit
@+Thierry
 
@

@+Thierry

Guest
Bonjour Arnaud, Pascal

Bientôt il y a avait un carrembolage sur XLD !! lol

Pour Arnaud, je pense que le plantage du UserForm avec un code bugué à l'initialise du UserForm met toujours en surligné la commande UserFormX.Show, même si évidemment ce n'est pas elle en cause. (Enfin j'ai compris comme ceci le problème de Matthieu)

Pour Pascal, oui merci aussi pour ce lien vers d'autres démos ProgressBar.

Bon Appétit
@+Thierry
 
M

Matthieu

Guest
Ok en fait c'est dans le Activate en effet qu'il faut mettre le code !!

Mon .show est dans mon module !! La ca marche, juste un petit problème graphique que je devrais regler avec un DoEvents

Merci de votre aide
 
@

@+Thierry

Guest
Re Bonjour Matthieu, Pascal, Arnaud, le Forum

Tout simplement avec ce code dans le Private Module du UserForm lui-même :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub


Le CloseMode peut avoir ces valeurs (sorry je travaille en version américaine) :
The CloseMode argument returns the following values:
vbFormControlMenu 0 = The user has chosen the Close command from the Control menu on the UserForm.
vbFormCode 1 = The Unload statement is invoked from code.
vbAppWindows 2 = The current Windows operating environment session is ending.
vbAppTaskManager 3 = The Windows Task Manager is closing the application.


Bon Appétit
@+Thierry
 

Discussions similaires

Réponses
1
Affichages
395

Statistiques des forums

Discussions
314 208
Messages
2 107 290
Membres
109 796
dernier inscrit
aelgar