blinking button

P

Pierre

Hi,

I have a button on a userform.
i would like te button to blink (making the button ackcolor switch from red
to white to red to white etc...) for 3 seconds.
How can i do this in VBA ?
Thanks,
Pierre
 
G

Guest

In your activate event:

Private Sub UserForm_Activate()
CommandButton1.BackColor = 4966415
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waittime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waittime
CommandButton1.BackColor = 4966555
Application.ScreenUpdating = True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waittime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waittime
CommandButton1.BackColor = 3966555
Application.ScreenUpdating = True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waittime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waittime
CommandButton1.BackColor = 2966555
Application.ScreenUpdating = True
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waittime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waittime
CommandButton1.BackColor = 4566555
Application.ScreenUpdating = True
End Sub

I know it looks difficult, you just need to find the colors you want and
change the number of the color, any further question please aske me, I made
this fast, but with some time you can make this in 4 or 5 lines (with for
statements)
HTH

Pierre via OfficeKB.com said:
hi filo666
Thanks for the help but do you have some vba code for me please ?
Thanks,
Pierre
use the wait ant the backcolor propierties
[quoted text clipped - 4 lines]
Thanks,
Pierre
 
L

Leith Ross

Hello Pierre,

Here is a macro than can be used with any button name on any form
Insert a new VBA module into your project and paste the code into.

EXAMPLES OF CALLING BLINKBUTTON MACRO

If you want to blink CommandButton1...
Call BlinkButton(CommandButton1)

If you have 2 UserForms open and want to blink CommandButton1 o
UserForm2...
Call BlinkButton(UserForm2.CommandButton1)

You can make the call from anywhere in your code.


Code
-------------------
'/////////////////////////////////////////'
'/ /'
'/ Sleep suspends program activity /'
'/ for an interval given in Milli- /'
'/ Seconds. 1 millisecond = 1/1000 /'
'/ of a second. /'
'/ /'
'/////////////////////////////////////////'


Public Declare Function Sleep _
Lib "kernel32.dll" _
(ByVal dwMillisecs As Long) As Long

Public Sub BlinkButton(Button As MSForms.Control)

'To use BlinkButton:
'Call BlinkButton(CommandButton1)

Dim N As Long
Dim OrigClr
Dim X As Object
Dim FormName

OrigClr = Button.BackColor
Set X = Button

'Get the Name of the UserForm the button is on
Do
FormName = X.Parent.Name
On Error Resume Next
Set X = X.Parent
If Err.Number <> 0 Then
Err.Clear
Exit Do
End If
Loop


'The UserForms collection can only be indexed by a number
For I = 0 To UserForms.Count - 1
If UserForms(I).Name = FormName Then
N = I
Exit For
End If
Next I

'Blink the button - 1/2 second White, 1/2 second Red, 3 times
For I = 1 To 3
Button.BackColor = vbWhite
UserForms(N).Repaint
Sleep (500)
Button.BackColor = vbRed
UserForms(N).Repaint
Sleep (500)
Next I

'Set the button back to it's orignal color
Button.BackColor = OrigClr

End Sub
 
P

Pierre via OfficeKB.com

Hi Leath,

Thanks for your help. This works fine !!!

I adjusted your code a little bit because the line:

UserForms(N).Repaint

caused my whole application to sort of blink...
I changed it to

DoEvents

And now only the button is flashing !!!
thanks again,
Pierre
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Make a Button Blink???? 1
Help with blinking text 2
Blinking cells 6
Userform blinking label 2
Run - time error '1004' 1
URGENT HELP ON BLINKING/FLASHING CELL 5
blinking form... 3
VBA code does not work 7

Top