ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Nested IF statements - simplify? (https://www.excelbanter.com/excel-programming/372035-nested-if-statements-simplify.html)

Mark K.

Nested IF statements - simplify?
 
Hi,

Just looking for a way to cut down on some nested if statements.
Currently have the following:

If theRunner < Empty Then
If theRunner < "runner" Then
If theRunner < "scr" Then
Range("H1").Select
Do Until Trim(LCase(ActiveCell)) = theRunner
ActiveCell.Offset(1, 0).Select
Loop
wOutSht.Cells(runnerOSet, "AJ").Value = ActiveCell.Offset(0, -7).Value
End If
End If
End If

Is there a way to get the first 3 lines into 1? Basically want it to
ignore empty cells and those containing the strings "runner" or "scr".

TIA

Dave Peterson

Nested IF statements - simplify?
 
I like this:

if therunner = "" _
or therunner = "runner" _
or therunner = "scr" then
'do nothing
else
'do the real work
end if

But you could use:

if therunner < "" _
and therunner < "runner" _
and therunner < "scr" then
'do the real work
end if

But sometimes with And/negatives, it gets confusing (well, for me, anyway).




"Mark K." wrote:

Hi,

Just looking for a way to cut down on some nested if statements.
Currently have the following:

If theRunner < Empty Then
If theRunner < "runner" Then
If theRunner < "scr" Then
Range("H1").Select
Do Until Trim(LCase(ActiveCell)) = theRunner
ActiveCell.Offset(1, 0).Select
Loop
wOutSht.Cells(runnerOSet, "AJ").Value = ActiveCell.Offset(0, -7).Value
End If
End If
End If

Is there a way to get the first 3 lines into 1? Basically want it to
ignore empty cells and those containing the strings "runner" or "scr".

TIA


--

Dave Peterson

GKeramidas

Nested IF statements - simplify?
 
untested:

Sub test()
If theRunner < Empty And theRunner < "runner" And theRunner < "scr" Then
Range("H1").Select
Do Until Trim(LCase(ActiveCell)) = theRunner
ActiveCell.Offset(1, 0).Select
Loop
wOutSht.Cells(runnerOSet, "AJ").Value = ActiveCell.Offset(0, -7).Value
End If
End Sub

--


Gary


"Mark K." wrote in message
...
Hi,

Just looking for a way to cut down on some nested if statements. Currently
have the following:

If theRunner < Empty Then
If theRunner < "runner" Then
If theRunner < "scr" Then
Range("H1").Select
Do Until Trim(LCase(ActiveCell)) = theRunner
ActiveCell.Offset(1, 0).Select
Loop
wOutSht.Cells(runnerOSet, "AJ").Value = ActiveCell.Offset(0, -7).Value
End If
End If
End If

Is there a way to get the first 3 lines into 1? Basically want it to
ignore empty cells and those containing the strings "runner" or "scr".

TIA



Mark K.

Nested IF statements - simplify?
 
That's where I went wrong, tried using AND but didn't include the extra
"theRunner <" between each

Cheers

GKeramidas wrote:
untested:

Sub test()
If theRunner < Empty And theRunner < "runner" And theRunner < "scr" Then
Range("H1").Select
Do Until Trim(LCase(ActiveCell)) = theRunner
ActiveCell.Offset(1, 0).Select
Loop
wOutSht.Cells(runnerOSet, "AJ").Value = ActiveCell.Offset(0, -7).Value
End If
End Sub


Dave Peterson

Nested IF statements - simplify?
 
That's why I like to use the "or's" and ='s. And just put the code in the Else
portion.



"Mark K." wrote:

That's where I went wrong, tried using AND but didn't include the extra
"theRunner <" between each

Cheers

GKeramidas wrote:
untested:

Sub test()
If theRunner < Empty And theRunner < "runner" And theRunner < "scr" Then
Range("H1").Select
Do Until Trim(LCase(ActiveCell)) = theRunner
ActiveCell.Offset(1, 0).Select
Loop
wOutSht.Cells(runnerOSet, "AJ").Value = ActiveCell.Offset(0, -7).Value
End If
End Sub


--

Dave Peterson


All times are GMT +1. The time now is 03:21 AM.

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