Figuring out Timer Interval for Progress Bar

I'm having a really hard time wrapping my brain around this one.

I have a button, a timer, and a progress bar.

Dim L As Label
TotalTime = "0" 'set the variable that tracks the total required time to 0
For i = 1 To 5
    Set L = Form1("Liq" & i & "_Amount")
    TotalTime = Val(TotalTime) + Val(L) 'for each value, add it to the total time required
Next
pbtimer.Interval = Val(TotalTime) 'PROBLEM LINE - this is where I think the error lies
pbtimer.Enabled = True

Then the timer code is

Private Sub pbtimer_Timer()
If ProgressBar1.Value = 100 Then
 Exit Sub
Else
 ProgressBar1.Value = ProgressBar1.Value + Val(TotalTime) 'add one percent to the progress bar
End If

So, let's say I need .99 total seconds to complete the task at hand.  How do I set the timer interval to fire off every one hundreth of the required time?  Times 1000 for the timer's interval?  How does the percent (1/100) of what I want to do and the 1/1000 = one second property of the timer both interact?  See my confusion?   (...maybe this is more a math question than a VB question?)

Thanks!
LVL 1
jcreswellAsked:
Who is Participating?
 
Mike TomlinsonConnect With a Mentor Middle School Assistant TeacherCommented:
The following worked well for values measured in whole seconds.  The progressbar had the default min of 0 and max of 100.

Regards,

Idle_Mind

Option Explicit

Private Sub Command1_Click()
    Dim i As Integer
    Dim L As Label
    Dim TotalTime  As String
   
    TotalTime = "0"
    For i = 1 To 5
        Set L = Form1("Liq" & i & "_Amount")
        TotalTime = Val(TotalTime) + Val(L)
    Next
   
    ProgressBar1.Value = 0
    pbtimer.Interval = Val(TotalTime) / 100 * 1000 ' divide time into 100 slices and convert to milliseconds
    pbtimer.Enabled = True
End Sub

Private Sub pbtimer_Timer()
    If ProgressBar1.Value < 100 Then
        ProgressBar1.Value = ProgressBar1.Value + 1
    End If
    If ProgressBar1.Value = 100 Then
        pbtimer.Enabled = False
        MsgBox "Done!"
    End If
End Sub
0
 
GrahamSkanRetiredCommented:
The usual way is to divorce the checking time from the data.
You can set the .Max value to the expected maximum value, and then at each update, possible timer-dependent, set the Value to the current value of whatever is being measured.
0
 
JR2003Commented:
What is it you're trying to do?
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Mike TomlinsonMiddle School Assistant TeacherCommented:
I agree with JR2003.  Please explain a little more about how your program should work.

Can't quite make sense of the code you posted...  

=)
Idle_Mind
0
 
jcreswellAuthor Commented:
TotalTime is the total amount of time needed to reach 100% on the progress bar.

I cannot figure out how to set the progressbar.max property or the pbtimer.interval properties to cause the progress bar to take 'totaltime' amount of time to reach 100%

I am confused over the interplay between having to specify the "amount" to add to the progress bar per timer cycle in a Percent (out of 100) and the interval of the timer (where 1 second = 1000).

I hope that clears some up, let me know if you need more info!
0
 
BurbbleCommented:
Couldn't you just set the ProgressBar's .Max property to 1000 to avoid confusion? :-)

I am curious, what does this line do?

    Set L = Form1("Liq" & i & "_Amount")

-Burbble
0
 
jcreswellAuthor Commented:
That line enables me to loop through my fields, they are named Liq1, Liq2, Liq3, and so on.  L holds the name of that field so that the value can be pulled and added to "TotalTime."  The fields as a whole add up to the sum of the amount of time the progress bar needs to be going from 0% to 100%.

I tried setting the progressbar max to 1000, it still escapes me how these all work together.  Could you post example code of how this might work, or a description?
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
What are the values in Liq1_Amount thru Liq2_Amount measured in?  Milliseconds?  Seconds?

What is their format? Whole numbers? Fractions?

Idle_Mind
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.