PC Review


Reply
Thread Tools Rate Thread

do...loop with timer problem

 
 
Bert
Guest
Posts: n/a
 
      23rd Dec 2007
The following code (in Excel 2003) changes a command button's color, then
pauses for a couple of seconds, and changes the color again. The problem is
the change BEFORE the loop never displays. Is there something else I should
be doing to make this work? (IF I comment out the delay loop and use the
msgbox, the first color change shows just fine.)

Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Red
' MsgBox ("")
x = Timer + 2
Do
Loop Until Timer > x
Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Gray

Thanks for any suggestions.
Bert.


 
Reply With Quote
 
 
 
 
FSt1
Guest
Posts: n/a
 
      23rd Dec 2007
hi,
not sure but this might be a better way to cause a short pause

Application.Wait (Now + TimeValue("0:00:02"))

i have never seen using a do loop to pause code and written the way you have
it, there is nothing inside the loop to increment x. then maybe you left out
some code.

as to the other problem, you might try adding a DoEvents just after the
color change. maybe before too.
look up DoEvents in vb help.

Regards
FSt1

"Bert" wrote:

> The following code (in Excel 2003) changes a command button's color, then
> pauses for a couple of seconds, and changes the color again. The problem is
> the change BEFORE the loop never displays. Is there something else I should
> be doing to make this work? (IF I comment out the delay loop and use the
> msgbox, the first color change shows just fine.)
>
> Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Red
> ' MsgBox ("")
> x = Timer + 2
> Do
> Loop Until Timer > x
> Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Gray
>
> Thanks for any suggestions.
> Bert.
>
>
>

 
Reply With Quote
 
FSt1
Guest
Posts: n/a
 
      23rd Dec 2007
sorry. that should be....
Application.Wait (Now() + TimeValue("0:00:02"))

posted before proof reading.
FSt1

"FSt1" wrote:

> hi,
> not sure but this might be a better way to cause a short pause
>
> Application.Wait (Now + TimeValue("0:00:02"))
>
> i have never seen using a do loop to pause code and written the way you have
> it, there is nothing inside the loop to increment x. then maybe you left out
> some code.
>
> as to the other problem, you might try adding a DoEvents just after the
> color change. maybe before too.
> look up DoEvents in vb help.
>
> Regards
> FSt1
>
> "Bert" wrote:
>
> > The following code (in Excel 2003) changes a command button's color, then
> > pauses for a couple of seconds, and changes the color again. The problem is
> > the change BEFORE the loop never displays. Is there something else I should
> > be doing to make this work? (IF I comment out the delay loop and use the
> > msgbox, the first color change shows just fine.)
> >
> > Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Red
> > ' MsgBox ("")
> > x = Timer + 2
> > Do
> > Loop Until Timer > x
> > Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Gray
> >
> > Thanks for any suggestions.
> > Bert.
> >
> >
> >

 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      23rd Dec 2007
=NOW() is an excel worksheet function.
Now is a VBA function. It doesn't need the ()'s (but forgives you if you
include them)

In fact, your code doesn't need the outside parens:
Application.Wait Now + TimeValue("0:00:02")

Personally, I'd use timeserial instead of timevalue:
Application.Wait Now + Timeserial(0,0,2)


FSt1 wrote:
>
> sorry. that should be....
> Application.Wait (Now() + TimeValue("0:00:02"))
>
> posted before proof reading.
> FSt1
>
> "FSt1" wrote:
>
> > hi,
> > not sure but this might be a better way to cause a short pause
> >
> > Application.Wait (Now + TimeValue("0:00:02"))
> >
> > i have never seen using a do loop to pause code and written the way you have
> > it, there is nothing inside the loop to increment x. then maybe you left out
> > some code.
> >
> > as to the other problem, you might try adding a DoEvents just after the
> > color change. maybe before too.
> > look up DoEvents in vb help.
> >
> > Regards
> > FSt1
> >
> > "Bert" wrote:
> >
> > > The following code (in Excel 2003) changes a command button's color, then
> > > pauses for a couple of seconds, and changes the color again. The problem is
> > > the change BEFORE the loop never displays. Is there something else I should
> > > be doing to make this work? (IF I comment out the delay loop and use the
> > > msgbox, the first color change shows just fine.)
> > >
> > > Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Red
> > > ' MsgBox ("")
> > > x = Timer + 2
> > > Do
> > > Loop Until Timer > x
> > > Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Gray
> > >
> > > Thanks for any suggestions.
> > > Bert.
> > >
> > >
> > >


--

Dave Peterson
 
Reply With Quote
 
FSt1
Guest
Posts: n/a
 
      23rd Dec 2007
hi
thinks for the info. i had always use it as i posted. and it works. but now
i know how to shorten it a tad.

Thanks
FSt1

"Dave Peterson" wrote:

> =NOW() is an excel worksheet function.
> Now is a VBA function. It doesn't need the ()'s (but forgives you if you
> include them)
>
> In fact, your code doesn't need the outside parens:
> Application.Wait Now + TimeValue("0:00:02")
>
> Personally, I'd use timeserial instead of timevalue:
> Application.Wait Now + Timeserial(0,0,2)
>
>
> FSt1 wrote:
> >
> > sorry. that should be....
> > Application.Wait (Now() + TimeValue("0:00:02"))
> >
> > posted before proof reading.
> > FSt1
> >
> > "FSt1" wrote:
> >
> > > hi,
> > > not sure but this might be a better way to cause a short pause
> > >
> > > Application.Wait (Now + TimeValue("0:00:02"))
> > >
> > > i have never seen using a do loop to pause code and written the way you have
> > > it, there is nothing inside the loop to increment x. then maybe you left out
> > > some code.
> > >
> > > as to the other problem, you might try adding a DoEvents just after the
> > > color change. maybe before too.
> > > look up DoEvents in vb help.
> > >
> > > Regards
> > > FSt1
> > >
> > > "Bert" wrote:
> > >
> > > > The following code (in Excel 2003) changes a command button's color, then
> > > > pauses for a couple of seconds, and changes the color again. The problem is
> > > > the change BEFORE the loop never displays. Is there something else I should
> > > > be doing to make this work? (IF I comment out the delay loop and use the
> > > > msgbox, the first color change shows just fine.)
> > > >
> > > > Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Red
> > > > ' MsgBox ("")
> > > > x = Timer + 2
> > > > Do
> > > > Loop Until Timer > x
> > > > Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Gray
> > > >
> > > > Thanks for any suggestions.
> > > > Bert.
> > > >
> > > >
> > > >

>
> --
>
> Dave Peterson
>

 
Reply With Quote
 
JLGWhiz
Guest
Posts: n/a
 
      23rd Dec 2007
I couldn't get the OLEObjects from the Forms tool bar to work, but using the
Controls Toolbox button, this syntax works.

Sub btnClr()
Worksheets(1).CommandButton1.BackColor = RGB(0, 255, 255)
' MsgBox ("")
s = Timer + 2
Do While Timer < s
DoEvents
Loop
Worksheets(1).CommandButton1.BackColor = RGB(255, 100, 255)
End Sub

"Bert" wrote:

> The following code (in Excel 2003) changes a command button's color, then
> pauses for a couple of seconds, and changes the color again. The problem is
> the change BEFORE the loop never displays. Is there something else I should
> be doing to make this work? (IF I comment out the delay loop and use the
> msgbox, the first color change shows just fine.)
>
> Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Red
> ' MsgBox ("")
> x = Timer + 2
> Do
> Loop Until Timer > x
> Worksheets(2).OLEObjects.Item(BtnNo).Object.BackColor = Gray
>
> Thanks for any suggestions.
> Bert.
>
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
how do I put Dev Ashish's timer into my loop? efandango Microsoft Access Form Coding 1 28th Feb 2009 12:53 PM
Loop Unitl with timer blackbox via OfficeKB.com Microsoft Excel Programming 1 24th Jun 2007 04:26 AM
Re: loop in a timer Imran Koradia Microsoft Dot NET 0 23rd Sep 2004 01:33 AM
loop in a timer =?Utf-8?B?SklNLkgu?= Microsoft Dot NET 0 22nd Sep 2004 10:01 PM
help needed with timer / loop wendy_ia Microsoft Excel Programming 0 17th Jun 2004 06:06 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 03:39 AM.