déroulement macro barre d'avancement ?

F

François

Guest
bonjour le forum,

j'ai une macro qui dure assez longtemps en faisant de nombreuses actions différentes (ouverture fermeture, liaisons recalcul etc...)

j'aimerai bien que pendant le déroulement de la macro des fenêtre apparaissent donnant l'action en cours mais qu'il ne soit pas nécessaire de cliquer sur ok pour que la tâche continue ou s'achève.

Cela est-il possible à mettre en oeuvre pour un débutant en vba svp ?

merci d'avance
 

Gael

XLDnaute Barbatruc
Bonjour François,

Regarde sur Le FIL suivant car j'ai posé la même question récemment.

J'ai finalement mis en place les 2 solutions dans mon appli, le User form et le status bar et ça marche très bien.

Lien supprimé

Si tu rencontres des problèmes, je t'enverrai la partie macro de mon application.

@+

Gael
 

KIM

XLDnaute Accro
Bonjour Gael , Francois et le forum,
J'en profite de ce fil pour demander à Gael s'il peut m'envoyer aussi la partie macro de son application concernant les 2 solutions le userform et le status bar.
Merci d'avance Gael
Cordialement
KIM
 

Gael

XLDnaute Barbatruc
Bonjour François, Bonjour Kim,

Avec les conseils éclairés de Pascal, Hervé, Mydearfriend et Hellboy que je remercie encore, voici le résultat final dans le fichier ci-joint.

J'ai gardé les titres de mon application et remplacé les traitements par des boucles de compteurs comme dans l'exemple d'Hervé (mais j'ai diminué les chiffres pour ne pas attendre trop longtemps entre chaque phase).

Le Userform et la barre d'état sont tous les deux en fonction et finalement les utilisateurs trouvent ça très bien.

@+

Gael [file name=Avancement.zip size=13330]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Avancement.zip[/file]
 

Pièces jointes

  • Avancement.zip
    13 KB · Affichages: 178
  • Avancement.zip
    13 KB · Affichages: 164
  • Avancement.zip
    13 KB · Affichages: 162

Gael

XLDnaute Barbatruc
Bonjour François, Bonjour Kim,

Le userform est un formulaire VBA dans lequel tu mets des champs de texte ou de données à remplir at auquel tu peux associer des traitements spécifiques en VBA.

Dans ce cas très simple, une fois dans l'éditeur VBA, tu ouvres la dossier Feuilles du fichier que je t'ai envoyé et tu doubleclic sur Processus (nom du userform) et tu verras affiché la fenêtre avec tous les messages.

Chaque champ a des propriétés et ici, ils sont tous non visibles.

Dans la macro, il suffit de les rendre visibles au fur et à mesure avec la série d'instructions suivantes:

With Processus
.OK1.Visible = True
.Phase2.Visible = True
.Repaint
End With

Ce code va rendre visible le premier OK, puis le texte de la deuxième phase et repaint va mettre à jour et ainsi de suite.

Tu peux simplement copier le userform en le faisant glisser dans ton document puis le modifier pour l'adapter à ton application et mettre au fil de la macro les instructions d'apparrition de messages.

Si tu n'y arrive pas, envoie simplement ton code avec les phases souhaitées et je te le renverrai modifié.

Bon courage.

@+

Gael
 

Statistiques des forums

Discussions
311 720
Messages
2 081 909
Membres
101 836
dernier inscrit
karmon