 <p>First of all, I would set the interval to something like 500, then step it back to 400, 300, 200, 100, etc. until you get the desired speed you want.</p> <p>Secondly, assuming <strong>Label2</strong> is your <em>max</em> value and <strong>Label3</strong> is your <em>min</em> value and that you want your progress bar control to simply <em>bounce</em> back and forth between the min and max values, I would do something like this:</p> <pre><code>Const MAX_VALUE = 100 Const MIN_VALUE = 0 Dim currentValue = 0 Dim isIncrementing = True Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If currentValue = MAX_VALUE Then isIncrementing = False If currentValue = MIN_VALUE Then isIncrementing = True If isIncrementing Then currentValue += 1 Else currentValue -= 1 ProgressBar1.Value = currentValue ProgressBar1.Update() End Sub </code></pre> <p><em>Since I'm assuming your <strong>Label2</strong> and <strong>Label3</strong> are your min/max values, I'm also assuming they should stay static and never change, which is why I don't change their values in the <code>Tick</code> event. If you wanted a <strong>Current Value</strong> label, that would be easy enough to add and that would be changed at the same time the <code>ProgressBar1.Value</code> is.</em></p>