XL 2019 Afficher textbox 2 seconde

farid

XLDnaute Occasionnel
Bonjour à vous tous ,
en PJ, j'ai un bouton 1 et lorsque je passe ma souris dessus, ma textbox1 s'affiche et lorsque la souris est sur le textbox2 , ma textbos1 disparrait, jusqu'ici pas de soucié.
Ma question est, lorsque la souris est le bouton 1 et que la textbox 1 apparaît, serait-il possible tout en gardant la souris sur le bouton de rendre invisible ma textbox 1 au bout de 2 secondes.
Merci pour votre retour et bonne journée
 

Pièces jointes

  • Affichage 2 seconde textbox.xlsm
    22.8 KB · Affichages: 6
Solution
bonjour farid, mapomme, Phil69970,
Je ne pense pas que l'on peut bloquer les évènements sur mousemove sans faire une usine à gaz
Avec une variable Static le blocage n'a rien d'une usine à gaz :
VB:
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Static n 'mémorise la variable
Dim test As Boolean, PauseTime, Start
n = n + 1
test = X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or Y > CommandButton1.Height - 10
If n = 1 And Not test Then
    If CommandButton1.BackColor <> RGB(255, 167, 38) Then CommandButton1.BackColor = RGB(255, 167, 38)
    TextBox1.Visible = True
    PauseTime = 2    ' Définit la durée.
    Start = Timer    ' Définit l'heure de...

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @farid :),
En visant la simplicité, peut-être :
VB:
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Dim t
   CommandButton1.BackColor = RGB(255, 167, 38): Me.TextBox1.Visible = True
   t = Timer + 2: Do While Timer <= t: DoEvents: Loop
   Me.CommandButton1.BackColor = RGB(206, 206, 206): Me.TextBox1.Visible = False
End Sub

edit : bonjour @Phil69970 ;).
 
Dernière édition:

farid

XLDnaute Occasionnel
Bonjour MaPomme , Phil,
merci pour ces réponses rapides et efficaces. Vos propositions fonctionnent très bien, cependant (hé oui, je suis embêtant), lorsque la souris est sur le bouton, vos codes fonctionnent, mais si je bouge la souris dans ce même bouton, l'événement redémarre. La question est-ce possible lorsque je suis sur le bouton et que l'événement s'enclenche et tant que la souris n'est pas sortie du bouton que je ne puisse pas relancer l'événement.
Merci à vous deux et bonne journée.
Farid
 

job75

XLDnaute Barbatruc
bonjour farid, mapomme, Phil69970,
Je ne pense pas que l'on peut bloquer les évènements sur mousemove sans faire une usine à gaz
Avec une variable Static le blocage n'a rien d'une usine à gaz :
VB:
Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Static n 'mémorise la variable
Dim test As Boolean, PauseTime, Start
n = n + 1
test = X < 10 Or X > CommandButton1.Width - 10 Or Y < 10 Or Y > CommandButton1.Height - 10
If n = 1 And Not test Then
    If CommandButton1.BackColor <> RGB(255, 167, 38) Then CommandButton1.BackColor = RGB(255, 167, 38)
    TextBox1.Visible = True
    PauseTime = 2    ' Définit la durée.
    Start = Timer    ' Définit l'heure de début.
    Do While Timer < Start + PauseTime
        DoEvents    ' Donne le contrôle à d'autres processus.
    Loop
    TextBox1.Visible = False
ElseIf test Then
    n = 0 'RAZ
End If
End Sub
A+
 

Pièces jointes

  • Affichage 2 seconde textbox(1).xlsm
    38.8 KB · Affichages: 8

Discussions similaires

Réponses
8
Affichages
299