Bazofio,
Attached is a new version of the sample workbook.
I have added a listbox to the userform that is populated with the names of the worksheets.
Each worksheet needs to search a different range, and the designated range to search is determined by the listbox's selection.
Here is the full userform code:
Private Sub btnCancel_Click()
Unload Me
End Sub
Private Sub btnFind_Click()
Dim rngFound As Range
Dim rngSearch As Range
Me.txtFind.SetFocus
If Len(Me.txtFind.Text) = 0 Then
MsgBox "Must provide search criteria", , "Find Error"
Exit Sub
End If
If Me.listSheets.ListIndex = -1 Then
Me.listSheets.SetFocus
MsgBox "Must select a sheet to search", , "Find Error"
Exit Sub
End If
Select Case Me.listSheets.ListIndex
Case 0: Set rngSearch = Sheets("Sheet1").Range("A10:F10")
Case 1: Set rngSearch = Sheets("Sheet2").Range("A12:F12")
Case 2: Set rngSearch = Sheets("Sheet3").Range("A13:J13")
Case 3: Set rngSearch = Sheets("Sheet4").Range("B20:G20")
Case 4: Set rngSearch = Sheets("Sheet5").Range("C15:I15")
End Select
Set rngFound = rngSearch.Find(Me.txtFind.Text, , xlValues, xlWhole)
If Not rngFound Is Nothing Then
MsgBox Title:="Match Found", _
Prompt:="Searched for:" & vbTab & Me.txtFind.Text & Chr(10) & _
"Average:" & vbTab & vbTab & rngFound.Offset(-1).Text & Chr(10) & _
"Record:" & vbTab & vbTab & rngFound.Offset(1).Text
Else
MsgBox "No matches found for [" & Me.txtFind.Text & "] on sheet '" & rngSearch.Parent.Name & "'", , "No Matches"
End If
Set rngFound = Nothing
End Sub
Private Sub UserForm_Initialize()
Dim i As Long
Dim strSheets As String
For i = 1 To Sheets.Count
strSheets = strSheets & ":" & Sheets(i).Name
Next i
Me.listSheets.List = Split(Mid(strSheets, 2), ":")
End Sub
Bookmarks