Résolu [VBA]Changer la couleur d'un userform 2 secondes puis revenir à la couleur de base.

MaximeD

XLDnaute Nouveau
Bonjour,

Je cherche comment faire changer la couleurs de fond d'un userform 1 ou 2 seconde puis revenir à sa couleur de base ceci afin d'avoir une validation visuel de changement apporté a une base de donnée. ceci interviendrait au moment du clique sur le bouton ajout de contact ou modifier. Ca m'évite de faire une msgbox et un clic.

Des idées ?
 

Staple1600

XLDnaute Barbatruc
Bonsoir

Une piste à creuser
(Pour tester, comme je viens de le faire, il faut au moins deux contrôles sur l'Userform)
VB:
Private Sub CommandButton1_Click()
UserForm1.BackColor = vbRed
End Sub
Private Sub CommandButton1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
UserForm1.BackColor = &H8000000F
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @MaximeD,

Une autre piste:
VB:
Private Sub CommandButton1_Click()
Const nSec = 1
Dim fin, old, x
  old = Me.BackColor: Me.BackColor = RGB(0, 255, 0): fin = Now() + nSec / 24 / 60 / 60
  Do: DoEvents: Loop While Now() <= fin
  Me.BackColor = old
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Un autre manière plus précise et qui permet de descendre sous la seconde à privilégier. Précision de #1/16 de seconde.
VB:
Private Sub CommandButton1_Click()
Const max = 0.75  'durée max en seconde avec ou non fraction de seconde
Dim dat0 As Date, sec0 As Double, duree As Double, old
  dat0 = Date: sec0 = Timer: old = Me.BackColor: Me.BackColor = RGB(0, 255, 0)
  Do: DoEvents: duree = 86400 * (Date - dat0) + Timer - sec0: Loop Until duree > max
  Me.BackColor = old
End Sub
 
Dernière édition:

MaximeD

XLDnaute Nouveau
Bonjour,
J'ai eu quelques jours off d'où ma réponse tardive.
Merci pour votre rapidité et votre expertise ! Les bout de code que vous m'avez fourni sont déjà intégrer a on appli VBA et je vous en remercie grandement !!

A tout bientôt !!
 

Haut Bas