Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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 !
 
A

Arnaud

Guest
salut,

essaye de mettre ton code dans l'évènement Activate de ton usf.
sinon ta ligne frm_ma_form.show tu l'a écrite ou ??? car la j'ai un peu de mal a voir le truc.......
 
@

@+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
 
M

Matthieu

Guest
Ok c'est bon, trop bien ce forum

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

@+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
 
M

Munchkin

Guest
Bonjour à tous
Voilà

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

Munchkin
 

Discussions similaires

Réponses
1
Affichages
395
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…