Incorporer une durée dans le (Sub ""_click) d'un bouton
SE44fr
Messages postés
32
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour au forum,
Je voudrais incorporer une durée (de 2 secondes) dans le code d'un bouton situé dans un userform.
La durée dans ce code me permettrai de changer la couleurdu contour du bouton (vérification visuelle du clic) puis remettre la couleur de ce contour 2 secondes plus tard...
J'ai donc écrit cela :
--------------------------------------------------
Private Sub CommandButton23_Click()
CommandButton12.Locked = False
CommandButton14.Locked = False
CommandButton23.BackColor = vbWhite
Application.OnTime Now, TimeValue("00:00:02")
CommandButton23.BackColor = vbBlack
End Sub
--------------------------------------------------
Effectivement, j'ai écris le paramètre backcolor pour le moment.
Le problème vient du "Application.OnTime", même s'il ne m'affiche pas d'erreur, le fond reste noir au lieu de devenir blanc pendant 2 secondes. Enfin j'ai du mal l'écrire...
Merci d'avance,
Cordialement.
Je voudrais incorporer une durée (de 2 secondes) dans le code d'un bouton situé dans un userform.
La durée dans ce code me permettrai de changer la couleurdu contour du bouton (vérification visuelle du clic) puis remettre la couleur de ce contour 2 secondes plus tard...
J'ai donc écrit cela :
--------------------------------------------------
Private Sub CommandButton23_Click()
CommandButton12.Locked = False
CommandButton14.Locked = False
CommandButton23.BackColor = vbWhite
Application.OnTime Now, TimeValue("00:00:02")
CommandButton23.BackColor = vbBlack
End Sub
--------------------------------------------------
Effectivement, j'ai écris le paramètre backcolor pour le moment.
Le problème vient du "Application.OnTime", même s'il ne m'affiche pas d'erreur, le fond reste noir au lieu de devenir blanc pendant 2 secondes. Enfin j'ai du mal l'écrire...
Merci d'avance,
Cordialement.
A voir également:
- Incorporer une durée dans le (Sub ""_click) d'un bouton
- Comment faire une capture d'écran sur un samsung sans bouton ? - Guide
- Diagnostic bouton photo - Accueil - Outils
- Que veut dire le bouton off ✓ - Forum Matériel & Système
- Probleme bouton on off - Forum PC portable
- Bouton shift pc - Forum Jeux vidéo
4 réponses
Bonjour
Essayez ceci
Cdlt
Essayez ceci
CommandButton23.BackColor = vbBlack
Application.Wait Now + TimeValue("00:00:02")
CommandButton23.BackColor = vbWhite
Cdlt
Regardes l'instruction DoEvents entre autre.
Merci pour cette piste NHenry,
Il semble bien que l'on peut associer DoEvents avec .OnTime ou Timer Envents dans une fonction, mais les exemple d'application de ces formules que j'ai pu trouver et tenté d'adapter ne fonctionne pas, il est très probable que cela vienne de moi puisque je maitrise à peine les bases en vba, mais j'apprends avec le temps...
Je me demande s'il n'existe pas un moyen plus simple pour faire clignoter la bordure d'un bouton de formulaire après un click ?
Cordialement,
SE
Il semble bien que l'on peut associer DoEvents avec .OnTime ou Timer Envents dans une fonction, mais les exemple d'application de ces formules que j'ai pu trouver et tenté d'adapter ne fonctionne pas, il est très probable que cela vienne de moi puisque je maitrise à peine les bases en vba, mais j'apprends avec le temps...
Je me demande s'il n'existe pas un moyen plus simple pour faire clignoter la bordure d'un bouton de formulaire après un click ?
Cordialement,
SE
Bonjour à tous,
Si tu veux faire clignoter plusieurs fois:
Si tu veux faire clignoter plusieurs fois:
Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub CommandButton1_Click() clignbouton End Sub Sub clignbouton() Dim i As Byte For i = 1 To 5 'nombre de clignotements Sleep (200) '1000 = 1 seconde DoEvents CommandButton1.ForeColor = vbBlue CommandButton1.BackColor = vbRed Sleep (200) DoEvents CommandButton1.ForeColor = vbRed CommandButton1.BackColor = vbBlue Next i End Sub
Bonjour cs_Le Pivert, et merci cet exemple de code,
Excusé moi de vous répondre avec un peu de retard, je suis un peu débordé en ce moment...
J'ai bien regardé votre code pour faire clignoter plusieurs fois le fond et le texte d'un bouton, cela dit je n'ai pas eu le temps de le mettre en pratique pour bien le comprendre (étant encore novice en vba...)
Je comprend bien la boucle de commande qui se répète le nombre de fois voulues, c'est plutôt les 2 premières lignes qui m'intrigue, et le fait que vous séparez le code de clignotement de la commande "click" du bouton en l'appelant par la fonction, il doit y avoir une bonne raison et comme je met toujours le code dans la commande du bouton directement cela m’inquiète un peu.
Je reviendrai faire un retour lorsque j'aurai tester et bien compris ce code.
Cordialement,
SE.
Excusé moi de vous répondre avec un peu de retard, je suis un peu débordé en ce moment...
J'ai bien regardé votre code pour faire clignoter plusieurs fois le fond et le texte d'un bouton, cela dit je n'ai pas eu le temps de le mettre en pratique pour bien le comprendre (étant encore novice en vba...)
Je comprend bien la boucle de commande qui se répète le nombre de fois voulues, c'est plutôt les 2 premières lignes qui m'intrigue, et le fait que vous séparez le code de clignotement de la commande "click" du bouton en l'appelant par la fonction, il doit y avoir une bonne raison et comme je met toujours le code dans la commande du bouton directement cela m’inquiète un peu.
Je reviendrai faire un retour lorsque j'aurai tester et bien compris ce code.
Cordialement,
SE.
Grâce à vous deux j'ai réussi a faire ce que je voulais,
Et concrètement, si quelqu'un est intéressé, ça donne cela :
---------------------------------------------------------
Private Sub CommandButton23_Click()
CommandButton12.Locked = False
CommandButton14.Locked = False
CommandButton23.ForeColor = &HC0C0&
CommandButton12.ForeColor = &HC0C0&
CommandButton14.ForeColor = &HC0C0&
DoEvents
Application.Wait Now + TimeValue("00:00:01")
DoEvents
CommandButton23.ForeColor = &HFFC0C0
End Sub
---------------------------------------------------------
Avec d'autre commandes sur les boutons 12 et 14 pour rétablir après une action.
Encore merci !
Cordialement,
SE.