ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   ELSEIF for multiple if ?? (https://www.excelbanter.com/excel-programming/398714-elseif-multiple-if.html)

J.W. Aldridge

ELSEIF for multiple if ??
 
I have this code that worked fine. Just needed to add a few more
conditions.
It was suggested that I use the code (2nd one below) with the elseif
statements, however that didnt quite work for me. I broke the elseif
statements down and ran them individually inside the same code (placed
a ' infront of the other lines and changed them to If statements) and
was successful.

Any suggestions....?

/////////////////////ORIGINAL CODE////////////////

Sub macro200()
Dim c As Range
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("h3:h" & ws.Cells(ws.Rows.Count,
"h").End(xlUp).Row)
For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
End If
Next c
End Sub


//////////SUGGESTED CODE ///////////////


Sub macro200()
Dim c As Range
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("h3:h" & ws.Cells(ws.Rows.Count,
"h").End(xlUp).Row)
For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
ElseIf c.Value = Range("ap2").Value Then
c.Offset(0, 2).Value = c.Offset(0, 34).Value
ElseIf c.Value = Range("aq2").Value Then
c.Offset(0, 3).Value = c.Offset(0, 35).Value
End If
Next c
End Sub


JW[_2_]

ELSEIF for multiple if ??
 
I'm the one that provided you with that code. We need more
information on why it didn't work for you. There is nothing wrong
with the code itself, so it's failure could be caused by faulty data.
We need a little more info in order to provide more detailed code.
J.W. Aldridge wrote:
I have this code that worked fine. Just needed to add a few more
conditions.
It was suggested that I use the code (2nd one below) with the elseif
statements, however that didnt quite work for me. I broke the elseif
statements down and ran them individually inside the same code (placed
a ' infront of the other lines and changed them to If statements) and
was successful.

Any suggestions....?

/////////////////////ORIGINAL CODE////////////////

Sub macro200()
Dim c As Range
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("h3:h" & ws.Cells(ws.Rows.Count,
"h").End(xlUp).Row)
For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
End If
Next c
End Sub


//////////SUGGESTED CODE ///////////////


Sub macro200()
Dim c As Range
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("h3:h" & ws.Cells(ws.Rows.Count,
"h").End(xlUp).Row)
For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
ElseIf c.Value = Range("ap2").Value Then
c.Offset(0, 2).Value = c.Offset(0, 34).Value
ElseIf c.Value = Range("aq2").Value Then
c.Offset(0, 3).Value = c.Offset(0, 35).Value
End If
Next c
End Sub



Rick Rothstein \(MVP - VB\)

ELSEIF for multiple if ??
 
The If-Then-ElseIf construction will execute only **one** of the conditions
(the first one that evaluates to True). You description makes it sound like
each condition can occur at the same time, so the ElseIf construct is not
appropriate construct for you to use... breaking into separate If-Then
blocks (as you did) allows each block's code to execute independently of the
other If-Then blocks.

Rick


"J.W. Aldridge" wrote in message
ups.com...
I have this code that worked fine. Just needed to add a few more
conditions.
It was suggested that I use the code (2nd one below) with the elseif
statements, however that didnt quite work for me. I broke the elseif
statements down and ran them individually inside the same code (placed
a ' infront of the other lines and changed them to If statements) and
was successful.

Any suggestions....?

/////////////////////ORIGINAL CODE////////////////

Sub macro200()
Dim c As Range
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("h3:h" & ws.Cells(ws.Rows.Count,
"h").End(xlUp).Row)
For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
End If
Next c
End Sub


//////////SUGGESTED CODE ///////////////


Sub macro200()
Dim c As Range
Dim rng As Range
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Set rng = ws.Range("h3:h" & ws.Cells(ws.Rows.Count,
"h").End(xlUp).Row)
For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
ElseIf c.Value = Range("ap2").Value Then
c.Offset(0, 2).Value = c.Offset(0, 34).Value
ElseIf c.Value = Range("aq2").Value Then
c.Offset(0, 3).Value = c.Offset(0, 35).Value
End If
Next c
End Sub



J.W. Aldridge

ELSEIF for multiple if ??
 
Correct. More than one can be true. Any clue as to how to re-construct
it? I placed an ' in front of the codes to ensure my cell references
were correct, and they were (as it worked). So, now I am just looking
to get the code to work with multiple criteria.

Thanx


Rick Rothstein \(MVP - VB\)

ELSEIF for multiple if ??
 
Correct. More than one can be true. Any clue as to how to re-construct
it? I placed an ' in front of the codes to ensure my cell references
were correct, and they were (as it worked). So, now I am just looking
to get the code to work with multiple criteria.


Assuming the set up code you posted is correct for you situation, just
change the For-Next loop to this...

For Each c In rng
If c.Value = Range("ao2").Value Then
c.Offset(0, 1).Value = c.Offset(0, 33).Value
End If
If c.Value = Range("ap2").Value Then
c.Offset(0, 2).Value = c.Offset(0, 34).Value
End If
If c.Value = Range("aq2").Value Then
c.Offset(0, 3).Value = c.Offset(0, 35).Value
End If
Next c

Rick


J.W. Aldridge

ELSEIF for multiple if ??
 


PURRRRFECTO!!!

Thanx!

(You guys are great!)

....when I get my first million, I lookin everyone up and buying them a
krystal burger

But yours Sir.... Is with Cheese!

: )



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

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