View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Don Guillett Don Guillett is offline
external usenet poster
 
Posts: 10,124
Default find a value across an array of worksheets

Sub FindNumberInSheets()
For Each ws In Worksheets
'MsgBox ws.Name
With ws.Cells
Set x = .Find("60-2300", LookIn:=xlValues)
End With
If Not x Is Nothing Then
MsgBox ws.Name & " " & x.Address
Application.Goto Sheets(ws.Name).Range(x.Address)
Exit For
Exit For
End If
Next ws
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"Jay" wrote in message
...
Hi there,

Pretty new to vba and having some difficulties.

I want the user to able to select mulitple files to open but then have
Excel
automatically search through the workbooks for a specific value.

Each worksheet may or may not contain the value. The value will be part
of
a longer string and will be on any given sheet within the workbook, the
number of sheets in each workbook can vary from 1 to over a 1000.

Here's what I've got so far,


Private Sub SelectFiles()

FilesToOpen = Application.GetOpenFilename(filefilter:="Excel Files
(*.xls),*.xls", MultiSelect:=True)
If Not IsArray(FilesToOpen) Then
MsgBox "Nothing selected"
Else
For Book = LBound(FilesToOpen) To UBound(FilesToOpen)
Workbooks.Open Filename:=FilesToOpen(Book)
Call CodeSearch
Next
End If

End Sub

Private Sub CodeSearch()

Sheets("Sheet276").Select
Cells.Find(What:="60-2300", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

End Sub

I recorded the cells.find bit as a macro, problem is I'll have no idea
which
sheet my value is on. I've tried a bunch of things and am stuck.

Any ideas?

Thanks