Messages déroulement macro

  • Initiateur de la discussion Initiateur de la discussion Gael
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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,
 
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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour