MsgBox et Timer

Bonjour,

j'aimerais savoir s'il était possible d'ajouter un timer à une Msgbox ?

==> J'aimerais lorsque j'utilise ma procédure, qu'à la fin juste avant le "Unload Userform", afficher un MsgBox ( " Les modifications ont bien été appliquées ") pdt environ 1 sec.

Cela est-il possible ? Si oui, connaissez vous le code en question ? ( ou du moins la commande du timer, je devrais m'en sortir)

merci d'avance

Alors en fait, j'avais voulu faire ça aussi dans mon programme précédent et c'est pas possible directement, mais en chargeant une référence supplémentaire, tu peux faire des PopUp limitée dans le temps.

Extraits bruts de que j'avais fait :

'windows script host object model à activer!

Sub TimedMess(Message As String, Optional Titre As String)

Dim SH As IWshRuntimeLibrary.WshShell
Set SH = New IWshRuntimeLibrary.WshShell
SH.Popup Message, 2, Titre, vbOKOnly 'Ici la durée c'est 2 secondes, tu peux la passer en argument de la fonction!

End Sub

Sub appelMessTim()

TimedMess "Nice", "Working"

End Sub

Et si tu veux que les références soient chargées à l'ouverture du fichier peut importe où :

Private Sub Workbook_Open()

On Error Resume Next
     'Reference ADO Object Library using Major / Minor GUID
    With ThisWorkbook.VBProject.References
        .AddFromGuid "{000204EF-0000-0000-C000-000000000046}", 4, 0
        .AddFromGuid "{00020813-0000-0000-C000-000000000046}", 1, 6
        .AddFromGuid "{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}", 2, 4
        .AddFromGuid "{00020430-0000-0000-C000-000000000046}", 2, 0
        .AddFromGuid "{91493440-5A91-11CF-8700-00AA0060263B}", 2, 9
        .AddFromGuid "{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}", 1, 0
    End With

End Sub

J'ai juste plus aucune idée de qui est quoi là dedans, y a du PowerPoint, des trucs de stats et je sais plus quoi, mais dans ceux là, tu as celui de la référence à activer pour les popup avec minutage (windows script host object model)

Voilà, amuse toi bien!

(et si tu veux juste faire faire une petite pause à ton code pour que ta machine reprenne un peu le dessus, regarde DoEvent)

Bonjour,

Peut-être un peu plus simple.

Ajoute un Userform que tu arrange comme tu veux, par exemple avec un label qui affiche le texte que tu veux.

Dans le module de l'Userform colle le code ci-dessous

Option Explicit

Private Sub UserForm_Activate()
    Delais
End Sub

Sub Delais()
Dim T
    T = Timer + 2 'pour 2 secondes
    Do While Timer < T: Loop
    Unload Me
End Sub

Et dans le WorkBook_Close tu met

    UserForm1.Show

Pas de DoEvents ça te fermerais le classeur avant la fin des 2 secondes (que tu peu changer)

A+

Merci bcp à vous 2,

je vais essayer les 2 méthodes et voir celle que je trouve la plus pratique dans mon cas ^^

Bonne journée

Reuk,

N'y a-t-il pas une autre référence à charger ?

J'arrive à bien faire apparaître ma fenêtre pop-up avec mes paramètre et mes boutons voulus, mais le timer n'a pas l'air de fonctionner, elle reste ouverte indéfiniment :s

Là tout de suite, il me semble pas, regarde à quoi correspondent les codes GUI mais c'est les seules références supplémentaires que je chargeais...

Ok, merci ^^

Juste une dernière chose, çela pourrait il provenir du fait que j'utilise excel 2010 ?

Ahh ouais, c'est pas impossible, je sais plus trop comment ça se passe mais je crois que ça joue un peu dans les chargements de références... Mais c'est des souvenirs qui datent d'un peu plus d'un an donc je sais plus exactement...

google un coup (avec des bouts de macro ou de nom de référence) et tu devrais trouver quelques infos!

Bonjour,

--> ReuK je viens d'essayer ton système ..

Le code présent dans Open n'est pas nécessaire. en permanence, une fois sauver en état de marche la référence est mémorisée.

Et juste la dernière ligne est nécessaire.

faire une sub provisoire

Sub InitializeRef
    ThisWorkbook.VBProject.References.AddFromGuid "{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}", 1, 0
end sub

Pas mettre de On Error

Mettre le curseur dans la sub et taper F5

Si pas d'erreur tu devrais avoir dans les références Windows Script Host Object Model présent et cocher.

Tu dis, si ça va pas je verrais plus loin.

A+

Non mais au niveau de la référence c'est bon, si c'était pas le cas, j'aurais une erreur sur l'objet IWshRuntimeLibrary.WshShell .

Ca m'affiche bien le popup, mais le timer est passé à la trape

Sur le 2007 (Vista) ça fonctionne impec.

Salut Lermite, bah j'ai juste fait mon fichier idiotproof pour qu'il soit sensé résister à l'utilisateur le plus abruti et qu'il sorte pas de message d'erreur, sinon c'est le drame!

Et je savais pas sur quel poste de la boite il serait utilisé, donc à chaque ouverture je chargeais!

Pour le timer, il me semble que j'avais eu ce problème mais ça fait plus d'un an donc je sais plus trop...

Je regarderai si j'ai un peu de temps dans la semaine!

J'ai essayé sur un autre PC du bureau ta macro mais ils sont tous sous 2010 ... Même résultat.Fail.

--> StagiaireNul

Si vraiment ça va pas essaye mon système, en principe il devrait fonctionner sur 2010

A+

L'UF ne se rafraîchit pas il faut ajouter

Private Sub UserForm_Activate()
    Me.Repaint
    delais
End Sub

Eventuellement un exemple Avec quelques améliorations.

A+

Oui j'ai opté pour ta solution du coups, mais j'étais juste curieux de savoir pourquoi le timer ne fonctionnait pas :s

En tout cas merci ^^

Pense à valider le sujet stp pour qu'on sache que le problème est résolu!

(tu vas sur le post qui t'a apporté la solution et en haut à droite, tu valides avec le petit check vert! )

Si jamais j'ai un éclair de génie et que je me souviens pour 2010, je te le ferais savoir!

Rechercher des sujets similaires à "msgbox timer"