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

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.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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

  • 111.xlsm
    18.4 KB · Affichages: 63
  • 111.xlsm
    18.4 KB · Affichages: 54
Dernière édition:

Dranreb

XLDnaute Barbatruc
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.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
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

  • 111.xlsm
    21.6 KB · Affichages: 50
  • 111.xlsm
    21.6 KB · Affichages: 46

PMO2

XLDnaute Accro
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

  • MsgBoxHTA.xlsm
    16.4 KB · Affichages: 35

Discussions similaires

Réponses
7
Affichages
351

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet