ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Using Find in a macro (https://www.excelbanter.com/excel-discussion-misc-queries/39194-using-find-macro.html)

Phil Osman

Using Find in a macro
 
I have the following:
Cells.Select
Selection.Find(What:="1/07/2005", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("H95").Select

But, instead of the date that it is finding I want it to search for a date
that I previously copied in the macro. So literally:
Selection.Find(What:=Paste......

Can this be done somehow?

--
http://www.redbrick.dcu.ie/~pele

Rowan

Use a variable to hold the date you want to find. Assign the value to the
variable at the same time that you do the copy and paste. So if the variable
is myDate you can use:

Selection.Find(What:=myDate,...

Also you might want to change the code to set a range variable to the found
cell which allows you to check that something was actually been found before
selecting it. This will prevent an error occuring if Excel doesn't find the
date you are searching for:

Dim myRange As Range
With Cells
Set myRange = .Find(myDate)
End With
If myRange Is Nothing Then
MsgBox "Not found"
Else
' do whatever to myRange eg select
myRange.Select
End If

Hope this helps
Rowan

"Phil Osman" wrote:

I have the following:
Cells.Select
Selection.Find(What:="1/07/2005", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("H95").Select

But, instead of the date that it is finding I want it to search for a date
that I previously copied in the macro. So literally:
Selection.Find(What:=Paste......

Can this be done somehow?

--
http://www.redbrick.dcu.ie/~pele


Phil Osman

I don't understand the first bit. I named the cell that holds the Date as
"Month".
In my macro I then have:
Selection.Find(What:=Month,

but it doesn't work ?

--
http://www.redbrick.dcu.ie/~pele


"Rowan" wrote:

Use a variable to hold the date you want to find. Assign the value to the
variable at the same time that you do the copy and paste. So if the variable
is myDate you can use:

Selection.Find(What:=myDate,...

Also you might want to change the code to set a range variable to the found
cell which allows you to check that something was actually been found before
selecting it. This will prevent an error occuring if Excel doesn't find the
date you are searching for:

Dim myRange As Range
With Cells
Set myRange = .Find(myDate)
End With
If myRange Is Nothing Then
MsgBox "Not found"
Else
' do whatever to myRange eg select
myRange.Select
End If

Hope this helps
Rowan

"Phil Osman" wrote:

I have the following:
Cells.Select
Selection.Find(What:="1/07/2005", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("H95").Select

But, instead of the date that it is finding I want it to search for a date
that I previously copied in the macro. So literally:
Selection.Find(What:=Paste......

Can this be done somehow?

--
http://www.redbrick.dcu.ie/~pele



All times are GMT +1. The time now is 06:32 AM.

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