ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   For...Next Question (https://www.excelbanter.com/excel-programming/322715-next-question.html)

br0ke

For...Next Question
 
How do I get the following to loop until the end of a sheet with up to 200
entries in column A starting at row 3 and changing the range as it goes
through the loop. I'm new to this and any help much appreciated.

Sub test()

Dim i, j As Integer
Dim INS As String

i = 0: j -0

If ActiveSheet.Range("j3").Value < Empty Then i = i + 1: j = 1
If ActiveSheet.Range("k3").Value < Empty Then i = i - 1
If ActiveSheet.Range("l3").Value < Empty Then i = i + 1: j = 1
If ActiveSheet.Range("m3").Value < Empty Then i = 1 - 1

If j = 0 Then INS = ("N"): GoTo E
If i = 0 Then INS = ("C"): GoTo E
If i 0 Then INS = ("A")

E:
ActiveSheet.Range("n3") = INS

End Sub



Tom Ogilvy

For...Next Question
 
Sub test()

Dim i as Long, j As Long
Dim INS As String
Dim k as long, lastrow as Long
lastrow = cells(rows.count,1).End(xlup)


for k = 1 to lastrow - 2

i = 0: j =0


If ActiveSheet.Range("j3")(k).Value < Empty Then i = i + 1: j = 1
If ActiveSheet.Range("k3")(k).Value < Empty Then i = i - 1
If ActiveSheet.Range("l3")(k).Value < Empty Then i = i + 1: j = 1
If ActiveSheet.Range("m3")(k).Value < Empty Then i = 1 - 1

If j = 0 Then
INS = "N"
elseIf i = 0 Then
INS = "C"
elseIf i 0 Then
INS = "A"
End if
ActiveSheet.Range("n3")(k).Value = INS

Next k
End Sub

I don't know what you are doing, so I don't know if i and j should be set to
zero for each row. As written they are. If they should be initialized only
at the start, then move that line above the For i = line.

--
Regards,
Tom Ogilvy

"br0ke" wrote in message
...
How do I get the following to loop until the end of a sheet with up to 200
entries in column A starting at row 3 and changing the range as it goes
through the loop. I'm new to this and any help much appreciated.

Sub test()

Dim i, j As Integer
Dim INS As String

i = 0: j -0

If ActiveSheet.Range("j3").Value < Empty Then i = i + 1: j = 1
If ActiveSheet.Range("k3").Value < Empty Then i = i - 1
If ActiveSheet.Range("l3").Value < Empty Then i = i + 1: j = 1
If ActiveSheet.Range("m3").Value < Empty Then i = 1 - 1

If j = 0 Then INS = ("N"): GoTo E
If i = 0 Then INS = ("C"): GoTo E
If i 0 Then INS = ("A")

E:
ActiveSheet.Range("n3") = INS

End Sub





br0ke

For...Next Question
 
I had to change to

lastrow = worksheets("Sheet1").usedrange.rows.count

but everthing else worked well. Thanks....

Tom Ogilvy

For...Next Question
 
since you said:
of a sheet with up to 200

entries in column A starting at row 3

Why wouldn't column A be a sufficient indicator of the lastrow.

Nonetheless, glad you succeeded.

--
Regards,
Tom Ogilvy

"br0ke" wrote in message
...
I had to change to

lastrow = worksheets("Sheet1").usedrange.rows.count

but everthing else worked well. Thanks....





All times are GMT +1. The time now is 01:52 AM.

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