ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Loop without Do (https://www.excelbanter.com/excel-programming/436623-loop-without-do.html)

Marc Gendron[_2_]

Loop without Do
 

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)

Mike H

Loop without Do
 
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

"Marc Gendron" wrote:


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)


B Lynn B

Loop without Do
 
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

"Marc Gendron" wrote:


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)



All times are GMT +1. The time now is 10:16 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com