Messages déroulement macro

Gael

XLDnaute Barbatruc
Bonjour à tous,

Dans une application, j'ai ajouté une macro permettant d'enchaîner des traitements à la suite les uns des autres.

Comme il s'agit de requêtes vers des bases de données de systèmes centraux, le temps d'excécution est de l'ordre de plusieurs minutes pour l'ensemble des requêtes.

Je voudrais informer l'utilisateur pendant le déroulement de la procédure par exemple:

Phase 1 Recherche des articles...

puis:

Phase 1 Recherche des articles...OK
Phase 2 Statistiques de ventes...

puis:

Phase 1 Recherche des articles...OK
Phase 2 Statistiques de ventes...OK
Phase 3 Synthèse des résultats...

etc... avec à la fin du dernier traitement un bouton OK pour que l'utilisateur puisse vérifier la séquence s'il s'est absenté pendant le déroulement.

J'ai essayé avec Msgbox mais chaque message supprime le précédent et il faut cliquer sur OK.

Que me conseillez-vous.

Merci d'avance.

@+

Gael
 

Hervé

XLDnaute Barbatruc
Bonjour gael, re pascal, re le forum

en pièce jointe, une mise en application des bonnes idées de pascal.

salut
[file name=Classeur3_20050913164824.zip size=7742]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur3_20050913164824.zip[/file]
 

Pièces jointes

  • Classeur3_20050913164824.zip
    7.6 KB · Affichages: 33

Gael

XLDnaute Barbatruc
Bonjour Pascal, Bonjour hervé,

Merci de vos réponses.

Comme je ne sais pas comment créer un affichage non modal pour un userform j'ai regardé ton exemple, Hervé, mais je me demande si tu ne t'es pas trompé de fichier dans ton envoi car je ne comprends pas le résultat par rapport à la demande.

@+

Gael
 

Hervé

XLDnaute Barbatruc
re

OUPS :)

mille excuses gael, voici le bon.

salut
[file name=gael.zip size=10014]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/gael.zip[/file]
 

Pièces jointes

  • gael.zip
    9.8 KB · Affichages: 31
  • gael.zip
    9.8 KB · Affichages: 32
  • gael.zip
    9.8 KB · Affichages: 30

myDearFriend!

XLDnaute Barbatruc
Bonsoir Gael, Pascal76, Hervé, le Forum.

Si je peux me permettre une simple suggestion... pourquoi ne pas utiliser simplement la Barre d'Etat d'Excel ?

Tu pourrais faire par exemple :
Sub Traitement()
Dim AffichBarre As Boolean
      With Application
     
            'Affiche la barre d'état si elle est masquée
            AffichBarre = .DisplayStatusBar
            .DisplayStatusBar = True
           
            'Traitements
            .StatusBar = 'Phase 1   >> Recherche des articles... (traitement en cours)'
            'ICI le traitement phase 1
            '
            '
            .StatusBar = 'Phase 1 / Phase 2   >> Statistiques de ventes... (traitement en cours)'
            'ICI le traitement phase 2
            '
            '
            .StatusBar = 'Phase 1 / Phase 2 / Phase 3   >> Synthèse des résultats... (traitement en cours)'
            'ICI le traitement phase 3
            '
            '
            'ETC...
            '
           
            'Sans oublier à la fin la restauration de la situation d'origine
            'c'est à dire : contrôle de la barre d'état par Excel et
            'barre d'état éventuellement masquée
            .StatusBar = False
            .DisplayStatusBar = AffichBarre
      End With
End Sub
Cordialement,
 

Hellboy

XLDnaute Accro
Bonjour a tous (la liste commence a être longue) :)

Pour reprendre ce que Pascal disait:
En utilisant un userform modeless, le code continue de s'exécuter et n'attent pas de réponse du userform. Il peut donc resté affiché.

La façon de changer le type de userform de Modal a Modeless, tu va dans les propriété du userform et a la méthode 'ShowModal', tu indique False à la place.

Combiné avec une procédure comme celle-ci:


Public Sub Lancement()
UserForm1.Show

With UserForm1.Label1
'    appel de la phase 1
    .Caption = 'Phase 1'
   
'    appel de la phase 2
    .Caption = 'Phase 2'
    .Caption = 'Terminé'
End With

Unload UserForm1

End Sub

Tu pourra je crois accomplir ce que tu veux.

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

Pièces jointes

  • Userform_Modeless.zip
    7.1 KB · Affichages: 30

Gael

XLDnaute Barbatruc
Bonsoir à tous,

Tout d'abord un grand merci pour votre aide.

Les solutions d'Hervé et Mydearfriend fonctionnent parfaitement; comme elles sont compatibles, j'ai laissé les deux et adapté le code et le userform pour gérer 5 phases de traitements.

Grace à Pascal et Philippe, j'ai compris la différence entre les types 'Modal' et 'Modeless'.

Après avoir passé beaucoup de temps à aider des utilisateurs, c'est vraiment agréable d'être aidé à son tour; mon appliction est presque finalisée grâce à vous.

Finalement, le VBA a aussi son charme et je vais peut-être me laisser tenter par le coté obscur de la force d'ici quelques semaines.

Merci encore.

@+

Gael
 

Discussions similaires

Statistiques des forums

Discussions
312 313
Messages
2 087 165
Membres
103 485
dernier inscrit
maintenance alkern