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 subsub 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 : Frédéric Sigonneau, Robert Dezan
Mots clefs associés à cette page : message, msgbox, temporaire, userform, formulaire
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
