ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   For Loop - If / Or (https://www.excelbanter.com/excel-programming/407878-loop-if.html)

Richard

For Loop - If / Or
 
Hi

I have created a loop, which has an or in the if argument

For i = 2 To FinalRow
If DATEDIFF("d", Cells(i, 6), Now) < 8 Or DATEDIFF("d", Cells(i, 6),
Now) = "" Then
Sheets("Project List").Cells(i, 1).Copy
Destination:=ActiveWorkbook.Sheets("Slide").Range( "B1")

Can someone please explain why this isn't working. I am trying to loop
through a range of data and perform actions only on those where cells(i,6)
are either blank or the datediff is less than 8 ie a week or less

Many thanks in advance
Richard

Bob Phillips

For Loop - If / Or
 
Shouldn't it be

For i = 2 To FinalRow
If DATEDIFF("d", Cells(i, 6), Now) < 8 Or Cells(i,6).Value = "" Then
Sheets("Project List").Cells(i, 1).Copy
Destination:=ActiveWorkbook.Sheets("Slide").Range( "B1")


--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)



"Richard" wrote in message
...
Hi

I have created a loop, which has an or in the if argument

For i = 2 To FinalRow
If DATEDIFF("d", Cells(i, 6), Now) < 8 Or DATEDIFF("d", Cells(i, 6),
Now) = "" Then
Sheets("Project List").Cells(i, 1).Copy
Destination:=ActiveWorkbook.Sheets("Slide").Range( "B1")

Can someone please explain why this isn't working. I am trying to loop
through a range of data and perform actions only on those where cells(i,6)
are either blank or the datediff is less than 8 ie a week or less

Many thanks in advance
Richard




Dave Peterson

For Loop - If / Or
 
First, using datediff with days is kind of overkill. You could just subtract
one from the other. The difference will be in days.

with activesheet
for i = 2 to finalrow
if .cells(i,6).value = "" _
or (date - .cells(i,6).value < 8) then
'do the work
end if
next i
end with



Richard wrote:

Hi

I have created a loop, which has an or in the if argument

For i = 2 To FinalRow
If DATEDIFF("d", Cells(i, 6), Now) < 8 Or DATEDIFF("d", Cells(i, 6),
Now) = "" Then
Sheets("Project List").Cells(i, 1).Copy
Destination:=ActiveWorkbook.Sheets("Slide").Range( "B1")

Can someone please explain why this isn't working. I am trying to loop
through a range of data and perform actions only on those where cells(i,6)
are either blank or the datediff is less than 8 ie a week or less

Many thanks in advance
Richard


--

Dave Peterson


All times are GMT +1. The time now is 04:57 AM.

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