ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   For and IF statement error (https://www.excelbanter.com/excel-programming/353531-if-statement-error.html)

don

For and IF statement error
 

The following subroutine does not work if the Msgbox is set to
comment. I get a Type mismatch error on the If Datevalue(c) <= date_
line
Yet if I take the comment ' off and it is a live line then it works.

In addition, if I don't use datevalue(c) as part of the If statement ,
rather just use If c <=date_ then it seems to work without the msgbox
line.

Why would I be having this problem???
Thanks

Don


Sub Check_PO_dates()
Dim date_ As Date
'Checks for dates and deletes line items that have
'date = or older then last run
date_ = Sheets("times").Range("g29")
Sheets("PO_scratch").Select
lr = Cells(Rows.Count, "A").End(xlUp).Row
'MsgBox Cells(2, "f").Row
For Each c In Range(Cells(2, "F"), Cells(lr, "F"))
'MsgBox c
If DateValue(c) <= date_ Then
Rows(c.Row).ClearContents
End If
Next
End Sub

Chip Pearson

For and IF statement error
 
Don,

Change

If DateValue(c) <= date_ Then

to
If C.Value <= date_ Then


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com

"don" wrote in message
...

The following subroutine does not work if the Msgbox is set to
comment. I get a Type mismatch error on the If Datevalue(c) <=
date_
line
Yet if I take the comment ' off and it is a live line then it
works.

In addition, if I don't use datevalue(c) as part of the If
statement ,
rather just use If c <=date_ then it seems to work without the
msgbox
line.

Why would I be having this problem???
Thanks

Don


Sub Check_PO_dates()
Dim date_ As Date
'Checks for dates and deletes line items that have
'date = or older then last run
date_ = Sheets("times").Range("g29")
Sheets("PO_scratch").Select
lr = Cells(Rows.Count, "A").End(xlUp).Row
'MsgBox Cells(2, "f").Row
For Each c In Range(Cells(2, "F"), Cells(lr, "F"))
'MsgBox c
If DateValue(c) <= date_ Then
Rows(c.Row).ClearContents
End If
Next
End Sub




Tom Ogilvy

For and IF statement error
 
Sub Check_PO_dates()
Dim date_ As Date
'Checks for dates and deletes line items that have
'date = or older then last run
date_ = Sheets("times").Range("g29")
Sheets("PO_scratch").Select
lr = Cells(Rows.Count, "A").End(xlUp).Row
'MsgBox Cells(2, "f").Row
For Each c In Range(Cells(2, "F"), Cells(lr, "F"))
MsgBox c.Text
if isdate(c) then
If DateValue(c) <= date_ Then
Rows(c.Row).ClearContents
End If
end if
Next
End Sub

--
Regards,
Tom Ogilvy


"don" wrote in message
...

The following subroutine does not work if the Msgbox is set to
comment. I get a Type mismatch error on the If Datevalue(c) <= date_
line
Yet if I take the comment ' off and it is a live line then it works.

In addition, if I don't use datevalue(c) as part of the If statement ,
rather just use If c <=date_ then it seems to work without the msgbox
line.

Why would I be having this problem???
Thanks

Don


Sub Check_PO_dates()
Dim date_ As Date
'Checks for dates and deletes line items that have
'date = or older then last run
date_ = Sheets("times").Range("g29")
Sheets("PO_scratch").Select
lr = Cells(Rows.Count, "A").End(xlUp).Row
'MsgBox Cells(2, "f").Row
For Each c In Range(Cells(2, "F"), Cells(lr, "F"))
'MsgBox c
If DateValue(c) <= date_ Then
Rows(c.Row).ClearContents
End If
Next
End Sub





All times are GMT +1. The time now is 12:29 PM.

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