ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   User-defined search term in macro (https://www.excelbanter.com/excel-discussion-misc-queries/120522-user-defined-search-term-macro.html)

Rokuro kubi

User-defined search term in macro
 
I'm trying to pull a range of rows out of a sheet based on the value in
one of the columns being the same. As the value itself will change for
each time I run the macro, I need to be able to define a different
value each time - but I don't want to have to go in and amend the macro
every time.

So the macro starts with an input box where I enter the value the
routine should search for. However although vResponse is being set as
the value I enter and on the face of it the cell value and the inputted
variable match, the lines are not being pulled out.

Dim vResponse As Variant
vResponse = Application.InputBox( _
Prompt:="Enter Batch Number", _
Default:=Format(Number, 0), _
Type:=2)
'If vResponse = False Then 'User cancelled

Dim myRng2 As Range
Dim myCell2 As Range
Dim HoldRng2 As Range

Set myRng2 = Range("B1:B65536")

For Each myCell2 In myRng2.Cells
If myCell2.Value = vResponse Then ' The macro is going
straight from this line to the next
If HoldRng2 Is Nothing Then ' cell even though
myCell2.Value and vResponse are
Set HoldRng2 = myCell2 ' the same.
Else
Set HoldRng2 = Union(myCell2, HoldRng2)
End If
End If
Next myCell2


Rokuro kubi

User-defined search term in macro
 
A bit clearer...

Dim vResponse As Variant
vResponse = Application.InputBox( _
Prompt:="Enter Batch Number", _
Default:=Format(Number, 0), _
Type:=2)
'If vResponse = False Then 'User cancelled

Dim myRng2 As Range
Dim myCell2 As Range
Dim HoldRng2 As Range

Set myRng2 = Range("B1:B65536")

For Each myCell2 In myRng2.Cells
If myCell2.Value = vResponse Then
If HoldRng2 Is Nothing Then
Set HoldRng2 = myCell2
Else
Set HoldRng2 = Union(myCell2, HoldRng2)
End If
End If
Next myCell2


Roger Govier

User-defined search term in macro
 
Hi

With vResponse set as a variant, if your Batchnumbers in column B are
numeric, then the comparison will return false.
Try adding a line, vResponse = vResponse * 1
before going through the loop.

--
Regards

Roger Govier


"Rokuro kubi" wrote in message
ups.com...
A bit clearer...

Dim vResponse As Variant
vResponse = Application.InputBox( _
Prompt:="Enter Batch Number", _
Default:=Format(Number, 0), _
Type:=2)
'If vResponse = False Then 'User cancelled

Dim myRng2 As Range
Dim myCell2 As Range
Dim HoldRng2 As Range

Set myRng2 = Range("B1:B65536")

For Each myCell2 In myRng2.Cells
If myCell2.Value = vResponse Then
If HoldRng2 Is Nothing Then
Set HoldRng2 = myCell2
Else
Set HoldRng2 = Union(myCell2, HoldRng2)
End If
End If
Next myCell2




Rokuro kubi

User-defined search term in macro
 
Great Roger thanks



All times are GMT +1. The time now is 08:34 PM.

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