There's a couple of things that you may need to reconsider.
 
First of all, your code looks SPECIFICALLY at cell B1 and modifies A1.
 
you need a method of "cycling through" your values.
 
there are several ways to accomplish this.
In this case, I'd probably elect to do something like:
 
For each Rng in Range("B:B")
...
Next Rng
 
Now, the bad part of this is that it will process ALL rows.
 
If you only have a couple thousand, you'd be wasting LOTS of time checking the 
remaining 1 million +.
 
So, you'd want to stop it at some point.
As long as ALL of the rows you want to process have a value in column B,
 
you could use:
For each Rng in Range("B:B")
  If Rng.Value = "" then Exit For
...
Next Rng
 
In your code you're using:
Range("A1").Value = result
ONLY when the value in B is "KC" and doing nothing at other times.
 
Is that what you intended? or do you need to do this AFTER the If/elseif/Endif 
statement?
 
regardless, you don't want to update A1 every time, but the A column of the row 
being processed.
 
you can do this a couple of ways.
 
the .Offset method:
Rng.Offset(0, -1).Value = result
would indicate that the cell 1 cell to the left of the current row (0) would be 
changed.
 
you could also use:
 
Cells(rng.row,"A").Value = Result
 
so you end up with: 
=========================================================
Dim branch As String, result As String
    Dim Rng As Range
    
    For Each Rng In Range("B:B")
        If (Rng.Value = "") Then Exit For
        branch = Rng.Value
        If branch = "LW" Then
            result = "LW"
        ElseIf branch = "LN" Then
            result = "LN"
        Else
            result = "KC"
        End If
        Rng.Offset(0, -1).Value = result
    Next Rng
 =========================================================
 
I'm sure that you've got something else going on and this is simply a "snippet" 
of code.
Otherwise, I'm not sure what the purpose of the if/elseif/endif statement is.
 
You could always use:
    For Each Rng In Range("B:B")
        If (Rng.Value = "") Then Exit For
        Cells(Rng.Row, "A").Value = Rng.Value
    Next Rng

Paul
-----------------------------------------
“Do all the good you can,
By all the means you can,
In all the ways you can,
In all the places you can,
At all the times you can,
To all the people you can,
As long as ever you can.” - John Wesley
-----------------------------------------

 From: JenIT <jen...@alliedstaffing.com>
>To: excel-macros@googlegroups.com 
>Sent: Monday, November 10, 2014 9:00 AM
>Subject: $$Excel-Macros$$ If then elseif on same sheet not looping
>  
>
>
>Hello,
>I'm sure the answer to this is out there, but I am not searching correctly to 
>find it.  I have code to past the result of an if/then/elseif statement from 
>column B into column A.  It works for line one and I am drawing a mind blank 
>and I can't get it to run through the whole sheet (variable length).  I've 
>tried a lot of different things, but then it stops working all together.  
>Below is what I have.  I am not at all a VBA expert, but am usually good at 
>recording an modifying, but it has been a while and this time I am stumped.  
>
>
>
>
> 'set location
>
>Range("B:B").Select
>
>Dim branch As String, result As String
>
>branch = Range("B1").Value
>
>If branch = "LW" Then
>
>    result = "LW"
>ElseIf branch = "LN" Then
>
>    result = "LN"
>Else
>    result = "KC"
>Range("A1").Value = result
>
>
> End If
>
>
>End Sub
>
>
-- 
>Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
>=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
>https://www.facebook.com/discussexcel
> 
>FORUM RULES
> 
>1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
>Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
>quick attention or may not be answered.
>2) Don't post a question in the thread of another member.
>3) Don't post questions regarding breaking or bypassing any security measure.
>4) Acknowledge the responses you receive, good or bad.
>5) Jobs posting is not allowed.
>6) Sharing copyrighted material and their links is not allowed.
> 
>NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
>members are not responsible for any loss.
>--- 
>You received this message because you are subscribed to the Google Groups "MS 
>EXCEL AND VBA MACROS" group.
>To unsubscribe from this group and stop receiving emails from it, send an 
>email to excel-macros+unsubscr...@googlegroups.com.
>To post to this group, send email to excel-macros@googlegroups.com.
>Visit this group at http://groups.google.com/group/excel-macros.
>For more options, visit https://groups.google.com/d/optout.
>
>
>    

-- 
Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s 
=TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ 
https://www.facebook.com/discussexcel

FORUM RULES

1) Use concise, accurate thread titles. Poor thread titles, like Please Help, 
Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get 
quick attention or may not be answered.
2) Don't post a question in the thread of another member.
3) Don't post questions regarding breaking or bypassing any security measure.
4) Acknowledge the responses you receive, good or bad.
5) Jobs posting is not allowed.
6) Sharing copyrighted material and their links is not allowed.

NOTE  : Don't ever post confidential data in a workbook. Forum owners and 
members are not responsible for any loss.
--- 
You received this message because you are subscribed to the Google Groups "MS 
EXCEL AND VBA MACROS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to excel-macros+unsubscr...@googlegroups.com.
To post to this group, send email to excel-macros@googlegroups.com.
Visit this group at http://groups.google.com/group/excel-macros.
For more options, visit https://groups.google.com/d/optout.

Reply via email to