Loop without Do

M

Marc Gendron

My problem is that I get a "Loop without Do" statement (my code might have
other problems....I'll get to them later !)

No need to tell ya guys I'm a newbie...
Thanks in advance
Marc

Here's my code:


Sub NoComact()

Dim counter As Integer
Dim compteur As Integer
counter = 1
compteur = 1

Do
While counter < 1000
Do
Range("B, counter").Select
While Right("B, counter", 1) < Right("B, counter + 1", 1)
Range("C, counter").Value = "BRG-000 & compteur "
counter = counter + 1
Loop
compteur = compteur + 1
Loop
End Sub

(btw, compteur is counter in french)
 
M

Mike H

Hi,

because your enclosing your variable in quotes they're not being treated as
variable. Here's the corrected syntax for the middle loop but it is
fundamentally flawed because as soon as the code finds a value where (say) B2
is < B1 it will go into an endless loop, it will thenterminate quite quickly
with OVERFLOW because your variables are declared as integers and should be
long. Perhaps you could explain what it is your trying to do

Do While Right(Range("B" & counter), 1) < Right(Range("B" & counter + 1), 1)
Range("C" & counter).Value = "BRG-000" & compteur
counter = counter + 1
Loop

Mike
 
B

B Lynn B

It is a little difficult to be sure what you're trying to do. However, I
think the following may get fairly close. You may need to tweak a bit, but
this will give you some new ideas anyhow.

Specific notes: 1) You don't need to "select" a cell to perform operations
with it; and 2) you can use a "do while" loop, but it should be a single
statement (i.e. on one line) with the "while" condition stated on the same
line. If your line is too long, you can wrap it using
[space][underscore][enter].

Sub OtherWaysToLoop()

Dim i As Long, r As Long
Application.ScreenUpdating = False

i = 1
For r = 1 To 999
If Right(Cells(r, 2), 1) < Right(Cells(r + 1, 2), 1) Then
Cells(r, 3) = "BRG-000" & i
Else
i = i + 1
Cells(r, 3) = "BRG-000" & i
End If
Next

End Sub
 

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

Top