ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA Help needed -- compile error: object required (https://www.excelbanter.com/excel-programming/353589-vba-help-needed-compile-error-object-required.html)

alexandraVBAgirl

VBA Help needed -- compile error: object required
 
This code always gives me the error above. I have no idea what's wrong with
this
The point is to go through a list of dates and if they are less than say
1/1/2005 (my start date entered in the spreadsheet) change them to 0 and
keep others as is. But this doesn't seem to work at all. Could anyone pls
help me? Thanks

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
Set curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell.Value < startDate.Value Then curCell.Value = 0
Next counter
End If

End Sub

Bob Phillips[_6_]

VBA Help needed -- compile error: object required
 
This compiled for me

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell < startDate Then curCell = 0
Next counter

End Sub


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
This code always gives me the error above. I have no idea what's wrong

with
this
The point is to go through a list of dates and if they are less than say
1/1/2005 (my start date entered in the spreadsheet) change them to 0 and
keep others as is. But this doesn't seem to work at all. Could anyone pls
help me? Thanks

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
Set curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell.Value < startDate.Value Then curCell.Value = 0
Next counter
End If

End Sub




alexandraVBAgirl

VBA Help needed -- compile error: object required
 
Thanks, Bob, that seems to eliminate the error message. However, the
worksheet's startdate entered as 1/1/2005 initially turns to 12:00:00 AM as i
execute the macro. I got that before as well. Why does that happen?

my worksheet view

1/1/2004 start date 12:00:00 AM
1/2/2004 end date 2/2/2006
1/1/2005
1/2/2005
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/8/2005
1/9/2005
1/10/2005
1/11/2005
1/12/2005
1/13/2005
1/14/2005
1/15/2005
1/16/2005
1/17/2005
1/18/2005

Thanks.


"Bob Phillips" wrote:

This compiled for me

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell < startDate Then curCell = 0
Next counter

End Sub


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
This code always gives me the error above. I have no idea what's wrong

with
this
The point is to go through a list of dates and if they are less than say
1/1/2005 (my start date entered in the spreadsheet) change them to 0 and
keep others as is. But this doesn't seem to work at all. Could anyone pls
help me? Thanks

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
Set curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell.Value < startDate.Value Then curCell.Value = 0
Next counter
End If

End Sub





alexandraVBAgirl

VBA Help needed -- compile error: object required
 
but if i change the code slightly the start date and end date stay as entered
on the worksheet, however, nothing turns to zero.

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date

startDate = Range("e1").Value
endDate = Range("e2").Value

'Range("e1").Value = startDate
'Range("e2").Value = endDate

For counter = 1 To 20
curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell < startDate Then curCell = 0

Next counter

End Sub

worksheet:

1/1/2004 start date 1/1/2006
1/2/2004 end date 2/2/2006
1/1/2005
1/2/2005
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/8/2005
1/9/2005
1/10/2005
1/11/2005
1/12/2005
1/13/2005
1/14/2005
1/15/2005
1/16/2005
1/17/2005
1/18/2005

"alexandraVBAgirl" wrote:

Thanks, Bob, that seems to eliminate the error message. However, the
worksheet's startdate entered as 1/1/2005 initially turns to 12:00:00 AM as i
execute the macro. I got that before as well. Why does that happen?

my worksheet view

1/1/2004 start date 12:00:00 AM
1/2/2004 end date 2/2/2006
1/1/2005
1/2/2005
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/8/2005
1/9/2005
1/10/2005
1/11/2005
1/12/2005
1/13/2005
1/14/2005
1/15/2005
1/16/2005
1/17/2005
1/18/2005

Thanks.


"Bob Phillips" wrote:

This compiled for me

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell < startDate Then curCell = 0
Next counter

End Sub


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
This code always gives me the error above. I have no idea what's wrong

with
this
The point is to go through a list of dates and if they are less than say
1/1/2005 (my start date entered in the spreadsheet) change them to 0 and
keep others as is. But this doesn't seem to work at all. Could anyone pls
help me? Thanks

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
Set curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell.Value < startDate.Value Then curCell.Value = 0
Next counter
End If

End Sub





Bob Phillips[_6_]

VBA Help needed -- compile error: object required
 
I think you have bad logic

This

Range("e1").Value = startDate

should maybe be

startDate = Range("e1").Value

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
Thanks, Bob, that seems to eliminate the error message. However, the
worksheet's startdate entered as 1/1/2005 initially turns to 12:00:00 AM

as i
execute the macro. I got that before as well. Why does that happen?

my worksheet view

1/1/2004 start date 12:00:00 AM
1/2/2004 end date 2/2/2006
1/1/2005
1/2/2005
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/8/2005
1/9/2005
1/10/2005
1/11/2005
1/12/2005
1/13/2005
1/14/2005
1/15/2005
1/16/2005
1/17/2005
1/18/2005

Thanks.


"Bob Phillips" wrote:

This compiled for me

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell < startDate Then curCell = 0
Next counter

End Sub


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
This code always gives me the error above. I have no idea what's wrong

with
this
The point is to go through a list of dates and if they are less than

say
1/1/2005 (my start date entered in the spreadsheet) change them to 0

and
keep others as is. But this doesn't seem to work at all. Could anyone

pls
help me? Thanks

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
Set curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell.Value < startDate.Value Then curCell.Value = 0
Next counter
End If

End Sub







gti_jobert[_23_]

VBA Help needed -- compile error: object required
 

ok lets try


Code:
--------------------

Dim i%
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date

startDate = Range("e1").Value
endDate = Range("e2").Value

Sheets("sheet1").Select

i = 1
Do

curCell = Cells(i, 3).Value
If curCell < startDate Then
Cells(i, 3).Value = 0
end if
i = i + 1
loop until i = 21

End Sub


--------------------


--
gti_jobert
------------------------------------------------------------------------
gti_jobert's Profile: http://www.excelforum.com/member.php...o&userid=30634
View this thread: http://www.excelforum.com/showthread...hreadid=513551


alexandraVBAgirl

VBA Help needed -- compile error: object required
 
thanks bob, i changed that in my previous post already.

"Bob Phillips" wrote:

I think you have bad logic

This

Range("e1").Value = startDate

should maybe be

startDate = Range("e1").Value

--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
Thanks, Bob, that seems to eliminate the error message. However, the
worksheet's startdate entered as 1/1/2005 initially turns to 12:00:00 AM

as i
execute the macro. I got that before as well. Why does that happen?

my worksheet view

1/1/2004 start date 12:00:00 AM
1/2/2004 end date 2/2/2006
1/1/2005
1/2/2005
1/3/2005
1/4/2005
1/5/2005
1/6/2005
1/7/2005
1/8/2005
1/9/2005
1/10/2005
1/11/2005
1/12/2005
1/13/2005
1/14/2005
1/15/2005
1/16/2005
1/17/2005
1/18/2005

Thanks.


"Bob Phillips" wrote:

This compiled for me

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell < startDate Then curCell = 0
Next counter

End Sub


--
HTH

Bob Phillips

(remove nothere from email address if mailing direct)

"alexandraVBAgirl" wrote in
message ...
This code always gives me the error above. I have no idea what's wrong
with
this
The point is to go through a list of dates and if they are less than

say
1/1/2005 (my start date entered in the spreadsheet) change them to 0

and
keep others as is. But this doesn't seem to work at all. Could anyone

pls
help me? Thanks

Sub click()

Dim counter As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date


Range("e1").Value = startDate

For counter = 1 To 20
Set curCell = Worksheets("sheet1").Cells(counter, 3)
If curCell.Value < startDate.Value Then curCell.Value = 0
Next counter
End If

End Sub







alexandraVBAgirl

VBA Help needed -- compile error: object required
 
Thanks gtì_jobert,
with your code it worked just the way i wanted it to.

"gti_jobert" wrote:


ok lets try


Code:
--------------------

Dim i%
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date

startDate = Range("e1").Value
endDate = Range("e2").Value

Sheets("sheet1").Select

i = 1
Do

curCell = Cells(i, 3).Value
If curCell < startDate Then
Cells(i, 3).Value = 0
end if
i = i + 1
loop until i = 21

End Sub


--------------------


--
gti_jobert
------------------------------------------------------------------------
gti_jobert's Profile: http://www.excelforum.com/member.php...o&userid=30634
View this thread: http://www.excelforum.com/showthread...hreadid=513551




All times are GMT +1. The time now is 05:33 PM.

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