ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   ElseIf Statement problem (https://www.excelbanter.com/excel-programming/348829-elseif-statement-problem.html)

Erik K via OfficeKB.com[_2_]

ElseIf Statement problem
 
I have set a condition :

Range("M50").Select
If Range("AB25").Value = "N" Then
ActiveCell = "Drew"
ElseIf Range("AB23").Value = "N" Then
ActiveCell = "Jerry"
Else: ActiveCell = "Alternate"
End If

After this condition, Jerry is put into cell M50 because AB25's value is not
"N"

I then have a condition following this that states:

Range("M5,M38,M44,M50,M57,M63,M69,M74,M79,M85").Se lect
If Range("AB23").Value = "N" And Range("M38,M44,M50,M57,M63,M69,M74,
M79,M85").Value < "Jerry" Then
On Error Resume Next
Selection.Find(What:="Alternate", LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Replace What:="Alternate", Replacement:="Jerry", LookAt:
=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If

My problem lies within the ElseIf statement because when the Selection.Find
runs, it does not see "Jerry" in cell M50 and ends up finding a cell with the
word "Alternate" in it, replacing it with Jerry so my end result is having
two cells with "Jerry" in them.

Help! I have no idea where my problem lies.

--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200512/1

Tushar Mehta

ElseIf Statement problem
 
From what I can tell your code is doing exactly what it is programmed
to do!

Assuming that AB25 contains something other than N and AB23 contains N,
M50 will contain Jerry.

The Find method is searching for Alternate not for Jerry as in
Selection.Find(What:="Alternate",...

So, there is no reason to expect it will find Jerry.

The Replace method is replacing Alternate with Jerry.
ActiveCell.Replace What:="Alternate", Replacement:="Jerry",...

The code is doing exactly what it is programmed to do. It might not be
your intent but that is another story.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article <59419c86a8634@uwe, u13156@uwe says...
I have set a condition :

Range("M50").Select
If Range("AB25").Value = "N" Then
ActiveCell = "Drew"
ElseIf Range("AB23").Value = "N" Then
ActiveCell = "Jerry"
Else: ActiveCell = "Alternate"
End If

After this condition, Jerry is put into cell M50 because AB25's value is not
"N"

I then have a condition following this that states:

Range("M5,M38,M44,M50,M57,M63,M69,M74,M79,M85").Se lect
If Range("AB23").Value = "N" And Range("M38,M44,M50,M57,M63,M69,M74,
M79,M85").Value < "Jerry" Then
On Error Resume Next
Selection.Find(What:="Alternate", LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Replace What:="Alternate", Replacement:="Jerry", LookAt:
=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If

My problem lies within the ElseIf statement because when the Selection.Find
runs, it does not see "Jerry" in cell M50 and ends up finding a cell with the
word "Alternate" in it, replacing it with Jerry so my end result is having
two cells with "Jerry" in them.

Help! I have no idea where my problem lies.



Bob Phillips[_6_]

ElseIf Statement problem
 

"Tushar Mehta" wrote in message
om...
From what I can tell your code is doing exactly what it is programmed
to do!


Doesn't it always?



Erik K via OfficeKB.com[_2_]

ElseIf Statement problem
 
Well if you look at the If statement prior to the "find" it should recognize
that M50 has "Jerry" in that cell and not run the "find" for alternate. For
some reason it was still running a search for alternate. My objective was to
get it to skip the search since M50 was populated with Jerry.

Tushar Mehta wrote:
From what I can tell your code is doing exactly what it is programmed
to do!

Assuming that AB25 contains something other than N and AB23 contains N,
M50 will contain Jerry.

The Find method is searching for Alternate not for Jerry as in
Selection.Find(What:="Alternate",...

So, there is no reason to expect it will find Jerry.

The Replace method is replacing Alternate with Jerry.
ActiveCell.Replace What:="Alternate", Replacement:="Jerry",...

The code is doing exactly what it is programmed to do. It might not be
your intent but that is another story.

I have set a condition :

[quoted text clipped - 30 lines]

Help! I have no idea where my problem lies.


--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200512/1

Toppers

ElseIf Statement problem
 
Erik,

Try this change as your range test will not work (I believe!):

If Range("AB23").Value = "N" And
Range("M38,M44,M50,M57,M63,M69,M74,M79,M85").Find( "Jerry", LookIn:=xlValues)
Is Nothing Then


HTH

"Erik K via OfficeKB.com" wrote:

Well if you look at the If statement prior to the "find" it should recognize
that M50 has "Jerry" in that cell and not run the "find" for alternate. For
some reason it was still running a search for alternate. My objective was to
get it to skip the search since M50 was populated with Jerry.

Tushar Mehta wrote:
From what I can tell your code is doing exactly what it is programmed
to do!

Assuming that AB25 contains something other than N and AB23 contains N,
M50 will contain Jerry.

The Find method is searching for Alternate not for Jerry as in
Selection.Find(What:="Alternate",...

So, there is no reason to expect it will find Jerry.

The Replace method is replacing Alternate with Jerry.
ActiveCell.Replace What:="Alternate", Replacement:="Jerry",...

The code is doing exactly what it is programmed to do. It might not be
your intent but that is another story.

I have set a condition :

[quoted text clipped - 30 lines]

Help! I have no idea where my problem lies.


--
Message posted via OfficeKB.com
http://www.officekb.com/Uwe/Forums.a...mming/200512/1


Tushar Mehta

ElseIf Statement problem
 
OK, so we are no longer talking about the ElseIf or the Find method but
the If statement.

If you use range(discontinuous range).value, you only get the value of
the first range. If the first range contains only 1 cell you get back
that value. If it has multiple cells, you get back an array.

Use the code below and the Locals Window of the VBE to see the
difference:
Sub testValue()
Dim x, y
x = Range("a1:a2,a4").Value
y = Range("a1,a2,a4").Value
Stop
End Sub
Before running the code enter some values into a1:a4, say, the numbers
1, 2, 3, and 4.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article <59434696623d0@uwe, u13156@uwe says...
Well if you look at the If statement prior to the "find" it should recognize
that M50 has "Jerry" in that cell and not run the "find" for alternate. For
some reason it was still running a search for alternate. My objective was to
get it to skip the search since M50 was populated with Jerry.

Tushar Mehta wrote:
From what I can tell your code is doing exactly what it is programmed
to do!

Assuming that AB25 contains something other than N and AB23 contains N,
M50 will contain Jerry.

The Find method is searching for Alternate not for Jerry as in
Selection.Find(What:="Alternate",...

So, there is no reason to expect it will find Jerry.

The Replace method is replacing Alternate with Jerry.
ActiveCell.Replace What:="Alternate", Replacement:="Jerry",...

The code is doing exactly what it is programmed to do. It might not be
your intent but that is another story.

I have set a condition :

[quoted text clipped - 30 lines]

Help! I have no idea where my problem lies.





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

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