Afficher un message temporaire

Lighter

XLDnaute Junior
Bonjour à tous,
Je cherche comment dans un code VBA, je peux afficher dans le déroulement du programme, un message qui s'affiche que 15 à 20 secondes puis disparait pour continuer la suite du process.
Je passerai par une temporisation d'un MSGBOX( ) mais je n'en suis pas convaincu.
Merci pour votre aide
 

youky(BJ)

XLDnaute Barbatruc
Re : Afficher un message temporaire

Bonjour Lighter,
Voici un exemple sur ce fichier (message de 12 secondes)
Macro simple à comprendre et voir Feuil2 ou je mets la zone de texte
Bruno
 

Pièces jointes

  • MSGsansbouton.xls
    51.5 KB · Affichages: 256
  • MSGsansbouton.xls
    51.5 KB · Affichages: 148
  • MSGsansbouton.xls
    51.5 KB · Affichages: 137

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Afficher un message temporaire

Bonjour Lighter,

Peut-être encore une autre manière:
VB:
Sub Test()

'***************************************
' code avant pause
  MsgBox "Fin du code avant la pause"
'***************************************

  Dim T0 As Single, Duree As Integer
  T0 = Timer: Duree = 10: Beep
  Do
    If Not UserForm1.Visible Then UserForm1.Show 0
    UserForm1.Label1 = "Veuillez patientez env. " & Int(Duree + T0 - Timer + 0.5) & "s"
    DoEvents
  Loop Until (Timer - T0) > Duree
  Unload UserForm1: Beep
    
'***************************************
' code après pause
  MsgBox "Suite du code après pause"
'***************************************

End Sub

edit: v2
 

Pièces jointes

  • Attente v2.xls
    40.5 KB · Affichages: 150
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Afficher un message temporaire

Bonsoir Hervé :) ,

Ravi de ton retour. Pour la syntaxe:
Les deux points ":" servent en VBA à séparer deux (ou plus) instructions sur la même ligne plutôt que de les écrire sur deux lignes (ou plus).
Ici trois instructions regroupées sur la même ligne:
T0 = Timer '(nbre de secondes écoulées depuis minuit)
Duree = 10 '(temps d'attente en s)
Beep '(couine)

@+
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour tout le monde,
je peux afficher dans le déroulement du programme,
Pour suivre le déroulement du programme sans interrompre celui ci, on peut utiliser :
VB:
Application.StatusBar = "Niveau de progression"
On peut ainsi insérer cette ligne dans plusieurs endroits du programme.
Et à la fin, ne pas oublier d'effacer le message :
Code:
Application.StatusBar = ""
 

patricktoulon

XLDnaute Barbatruc
bonjour sylvanu
sinon dans les ressources il y a ta progressbar dans la status bar
et le msgbox temporaire de Dudu2 et moi
quand a ta progressbar voici ma version
VB:
Sub testxx()
    For i = 1 To 100000
        x = i
        StatusProgressBar 100000, x
    Next
End Sub



Function StatusProgressBar(max, ind)
    Dim barre$, fin&, it&, perct&
    barre = WorksheetFunction.Rept(ChrW(9618), 20)
    fin = Int(max / (max / 20))
    it = Int(ind / (max / 20))
    Mid$(barre, 1, it) = Application.Rept(ChrW(9608), it)
    perct = Int(100 * (it / fin))
    Application.StatusBar = " - Progression : |" & barre & "|  " & perct & " %  "
End Function
 

Discussions similaires

Réponses
7
Affichages
405

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry