Afficher temporairement un msgbox

Pour suivre le déroulement d'une macro, je voudrais afficher temporairement un msgbox...

Si tu souhaites faire l'essai d'un message "plein écran", je te propose la procédure ci-dessous, à recopier dans un module standard du classeur qui t'intéresse. Tu peux ensuite l'appeler n'importe où dans ton code pour en surveiller le déroulement. Elle crée à la volée un UserForm avec un Label qui affiche le message demandé pendant le temps demandé (en millisecondes).

 Declare sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)    

sub FlashMsg(Msg$, Durée&)
 'création à la volée d'un userform qui affiche Msg pendant
 'Durée (en millisecondes). Excel 2000 seulement
 'nécessite une référence à Microsoft Forms 2.0 Object Library
 Dim UsrForm As Object, lbl As MSForms.Label
 
 Set UsrForm = ThisWorkbook.VBProject.VBComponents.Add(3)
 With UsrForm
  .Properties("Caption") = "Information déroulement macro"
  .Properties("Width") = 200
  .Properties("Height") = 100
  .Properties("ShowModal") = False
 End With
 
 Set lbl = UsrForm.Designer.Controls.Add("forms.label.1")
 With lbl
  .Caption = Msg
  .Left = 18: .Top = 12: .Width = 165: .Height = 55
  .ForeColor = 2036353 'rouge foncé
  .Font.Bold = True: .Font.Size = 12
 End With
 
 VBA.UserForms.Add(UsrForm.Name).Show
 
 DoEvents
 Sleep Durée
 
 ThisWorkbook.VBProject.VBComponents.Remove UsrForm
 end sub
sub Test()
 FlashMsg "Fin de la proc 'Zaza'." & vbLf & "Tout va bien !", 500
 end sub

Autre solution avec la status bar Tu peux aussi ajouter dans ton code Application.StatusBar = "OK 1", Application.StatusBar = "OK 2", etc.... et bien ouvrir tes jolies mirettes pour surveiller la barre d'état en bas de l'écran.
Ou encore mieux pour avoir le temps de lire : Sleep 2000
Application.StatusBar = "OK 1"
qui met Excel en sommeil pour 2 secondes et le réveille en disant OK

Auteurs : ,

Mots clefs associés à cette page : , , , ,