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

Boite de message

  • Initiateur de la discussion Initiateur de la discussion siocnarf
  • 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 !

siocnarf

XLDnaute Occasionnel
Bonjour,


J'aimerais faire apparaître une boite de dialogue pendant que mon programme s'exécute et ensuite que celle-ci se ferme à la fin du traitement.

Quelque chose du genre: "Traitement en cours"

Merci,

François
 
Re : Boite de message

Bonjour,

Pour cela, il te suffit de créer un Userform (Insertion/Userform dans VBE) dans lequel figure un label qui comprend 'Traitement en cours'. pour l'afficher sans interrompre le cours de ta macro, il te faut le faire en mode non modal. Pour cela, écris le ainsi :
Code:
Userform1.show vbmodeless
ou
Code:
Userform1.show 0

quand la macro a fini son traitement, tu fermes ton Userform ainsi:
Code:
Unload Userform1
 

Pièces jointes

Dernière édition:
Re : Boite de message

Bonjour à tous,

Bonjur à tous,

@ David:
sans oublier de mettre ceci en fin de procédure:

Application.Cursor = xlDefault
Application.StatusBar = ""

à+
Philippe

pour "réinitialiser" la barre d'état :
Code:
Application.StatusBar = False

cf aide vba :

bonne journée
@+
 
Re : Boite de message

Bonjour,

Génial, ça fonctionne. Maintenant je voudrais ajouter quelque chose d'un peu plus sophistiqué. Puisque certains traitement sont un peu long... est-il possible d'afficher un indicateur affichant depuis combien de temps le traitement s'exécute?

Merci,

François
 
Re : Boite de message

Bonsoir François, aux participants, et à ceux qui passeront par ici,

Maintenant je voudrais ajouter quelque chose d'un peu plus sophistiqué.

Voici, ci-joint, une entrée en matière.
Pas trop sophistiquée, mais spectaculaire.

Bien utile pour les presbytes comme moi. 🙂
Je n'ai pas une bonne perception du p'tit truc à gauche en bas! 😡

Ici le remplissage et le vidage de la feuille n'est là que pour ralentir la procédure.

Puisque de toute évidence, ton "Programme" doit bien enregistrer ou écrire quelque part,
tu devrais facilement adapter la progression du point "0" au point "Final".

Amicalement

Yann
 

Pièces jointes

Re : Boite de message

Bonjour,

Intéressant mais cela implique que l'on boucle dans le message. Dans cette situation, on ne peut pas lancer une routine qui prend du temps à boucler et afficher le temps qui s'écoule en même temps.

Merci,

François
 
Re : Boite de message

Bonsoir,
pas testé mais peut-être en utilisant la fonction DoEvents dans le code.
Ci-joint l'exemple fourni dans l'aide d'Excel concernant l'utilisation de Timer :
Code:
Timer, fonction, exemple
Cet exemple utilise la fonction Timer pour mettre l'application sur pause. Cet exemple utilise également la fonction DoEvents pour donner le contrôle à d'autres processus pendant la pause. 

Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Cliquez sur Oui pour effectuer une pause de 5 secondes", 4)) = vbYes Then
    PauseTime = 5    ' Définit la durée.
    Start = Timer    ' Définit l'heure de début.
    Do While Timer < Start + PauseTime
        DoEvents    ' Donne le contrôle à d'autres processus.
    Loop
    Finish = Timer    ' Définit l'heure de fin.
    TotalTime = Finish - Start    ' Calcule la durée totale.
    MsgBox "Pause de " & TotalTime & " seconde(s)"
Else
    End
End If
Donc peut-être à adapter.
A+
 
Re : Boite de message

Bonsoir siocnarf, aux participants, et à ceux qui passeront par ici,

Qu'est-il le plus important?

De visualiser le temps qui passe où le celui qui reste à attendre??? 😕

Le problème est de créer une "Routine", comme tu dis,qui demande le temps nécessaire pour visualiser un test... Donc:

Ayant une de mes petite bidouille récentes sous le coude où il est utile de faire
patienter l'utilisateur; je la dépose ici pour exemple:
Cijoint.fr - Service gratuit de dépôt de fichiers
(J'ai eu la flemme d'en créer une spécifique)

Dans cette situation, on ne peut pas lancer une routine qui prend du temps
à boucler et afficher le temps qui s'écoule en même temps.

Tu auras avec la barre de progression la preuve du contraire?
et avec en prime l'utilisation de "Timer" dont parle David.

Il te restera à fouiller, triturer pour en faire un beau mariage...

Tu pourras même créer un petit bonhomme frisé avec une grosse montre qui égraine les secondes.

Amicalement,

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

Discussions similaires

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