Ouvrir une boite de message tant que le calcul processeur est en cours.

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 !

FROLLINDE

XLDnaute Occasionnel
Bonjour le Forum,

Je cherche le moyen d'afficher une boite de dialogue tant que le calcul processeur est en cours.

Sur un classeur un peu lourd ce calcul peut mettre jusqu'à 20 secondes et je voudrais que l'utilisateur soit informer par un message "Veuillez Patienter".

Merci de vos idées.
 
Re : Ouvrir une boite de message tant que le calcul processeur est en cours.

Bonjour Frollinde,

la première solution serait d'essayer de réduire le temps de la procédure

il faut surtout éviter de mettre une animation du type "compte-à-rebours" qui ne ferait qu'allonger le temps d'exécution


une autre solution:
Code:
' au début de la procédure
Application.StatusBar = "Veuillez patienter"
' ....................................
' le code de la procédure
' ....................................
' à la fin de la procédure
Application.StatusBar = ""

une autre solution en pièce jointe

à+
Philippe
 

Pièces jointes

Dernière édition:
Re : Ouvrir une boite de message tant que le calcul processeur est en cours.

Bonjour.

J'ai un système de barre d'avancement avec UserForm qui ne consomme guère de temps d'exécution même s'il est appelé des centaines de milliers de fois, car il n'effectue de remise à jour de l'affichage que tous les quarts de seconde, et rend la main après exécution d'un tout petit nombre d'instructions quand ce n'est pas encore le moment.
 
Re : Ouvrir une boite de message tant que le calcul processeur est en cours.

Re bonjour,

voir fichier joint,

un exemple de 4 procédures donnant les mêmes résultats mais avec des temps d'exécution de plus en plus court

à+
Philippe
 

Pièces jointes

Re : Ouvrir une boite de message tant que le calcul processeur est en cours.

Bonjour,

Une piste avec le code suivant qui ouvre une MsgBox par le biais d'un HTA.
L'avantage est que le HTA est Out Process, il n'arrête pas le déroulement des procédures Excel.

Copiez le code suivant dans un module Standard
Code:
Dim HTA As Object

Sub Traitement()
'--- Lance le message d'attente ---
Call MsgBoxHTA(Prompt:="Veuillez patienter", ApparitionNbSecondes:=99999, Title:="Traitement en cours...")
 
'### Votre traitement ci-dessous ###

      '°°° Pseudo traitement pour illustrer (à virer) °°°
      Dim i&
      For i& = 1 To 25000
        [a1] = i&
      Next i&
      '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

'### Fin de votre traitement ###
'--- Ferme la MsgBoxHTA ---
HTA.SendKeys "~"
Set HTA = Nothing
End Sub
 
Private Sub MsgBoxHTA(Prompt As String, ApparitionNbSecondes As Long, Title As String)
'Prompt = le message de la MsgBoxHTA
'ApparitionNbSecondes = la durée d'appariton de la MsgBoxHTA en secondes
'       Si on spécifie un très grand nombre de secondes, il est impératif
'       de stopper le message avec l'intruction HTA.SendKeys "~" à la fin
'       de la procédure appelante.
'Title = le titre de la MsgBoxHTA
'---
DoEvents
'--- Crée la MsgBoxHTA ---
Set HTA = CreateObject("WScript.Shell")
HTA.Run "mshta.exe vbscript:Close(CreateObject(""WScript.Shell"")" & ".Popup(""" & _
         Prompt & """," & ApparitionNbSecondes & ",""" & Title & """," & 0 & "))"
End Sub

'#####################################################
'### Autre exemple avec une durée d'apparition de  ###
'### 5 secondes sans stop (absence de l'intruction ###
'###  HTA.SendKeys "~" àla fin du code)            ###
Sub UnAutreExemple()
'--- Lance le message d'attente ---
Call MsgBoxHTA(Prompt:="Je disparais dans 5 secondes", ApparitionNbSecondes:=5, Title:="Atteindre 5000 en G1")
      '°°° Pseudo traitement pour illustrer (à virer) °°°
      Dim i&
      For i& = 1 To 5000
        [g1] = i&
      Next i&
      '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
End Sub
'######################################################
 

Pièces jointes

- 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

Retour