View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Jacqui Jacqui is offline
external usenet poster
 
Posts: 18
Default Help with a Do Until statement

Thank you for your reply. K and n are columns and yes I did think my code
was wrong here. However I've entered "k" & i & ":n" & i but the editor
doesn't like it. Have I got a " or an & in the wrong place because I would
like it to solve to range "k3:n3" if i = 3.
Where you say the test is wrong what would you recommend? Tom Ogilvy has
posted a reply with revised syntax removing the Do Until loop and replacing
this with a For and exit For statement.
However I'm unable to fully test as I getting the Expected List Separator
error.
Can you help?
Many thanks
Jacqui


Are "k" and "n" meant to be columns? The
"k&i:n&i" will be treated a text string whereas I think you want the range to
be "k" & i & ":n" & i which solves to "k3:n3" if i=3. Even with this, the
format & test is wrong.



"Toppers" wrote:

Hi,
The problem is the statement:

If .Range(i, "k&i:n&i").Value = "" Then

which is an invalid format.

What is tis statement attempting to do? It appears to testing a range (row)
of cells - is this correct. Are "k" and "n" meant to be columns? The
"k&i:n&i" will be treated a text string whereas I think you want the range to
be "k" & i & ":n" & i which solves to "k3:n3" if i=3. Even with this, the
format & test is wrong.

Please provide more detail on what you are trying to do.

HTH

"Jacqui" wrote:

Can anyone help with my code. I'm trying to test that if Column C contains a
value across a number of rows then cells M and N must also contain values. I
thought a Do Until Not Is Empty condition would be most appropriate as I do
not wish to test every single row, only the rows which contain a value in
Column C. My code is not working however, I'm getting an Object Defined
Error.
Also it is possible that Column C may never actually contain values so I'm
concerned that I've also written an non-escapable loop. I'm sure you experts
will get the idea of what I'm trying to test, can you help me fix? Also is
there a neater way of writing this? I'm not sure whether I've used the best
methods/arguments. My code is copied below

Sub Disable_Check()

With Worksheets("Part B - Coding Details").Columns(3)

Cells.Find(What:="Disable segment values - values/effective", After:= _
ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False).Activate

iFirstRow = ActiveCell.Row + 2

lngLastRow = .Cells(Rows.Count, 3).End(xlUp).Row

For i = iFirstRow To lngLastRow
Do Until Not IsEmpty(Cells(i, 3).Value)
If .Range(i, "k&i:n&i").Value = "" Then

Beep
MsgBox "You have not indicated that you have carried out all
the necessary checks"

End If

Loop
Next


End With

End Sub