Hi longbow,
On the assumption that the entries for the other variables are also in other textboxes, if you don't want to define the search variables up front (e.g. limit them to searching for something defined as '<100' or '100-200' or '200+') then you could use something quick like the below which searches for any results that are +/- 50% of their keyed search criteria..?
So keying '100' in pressure would return a match if the pressure found on the worksheet was anywhere between 50 and 150?
Not sure if this helps you any...?
[VBA]
Public sh As Worksheet
Public sh1 As Worksheet
Dim chname as string ' keyed chemical name
dim xTemp as integer ' keyed temperature
dim xPress as integer ' keyed pressure
dim xFlow as integer ' keyed flow
chname = TextBox1.Text
xTemp = val(TextBox2.Text) 'converts keyed strings to integers
xPress = val(TextBox3.Text) ' so we can play around with them
xFlow = val(TextBox4.Text)
For Each sh In Worksheets
'ensure that all search criteria is met by referencing cells on each sheet
If chname = sh.Range("B3").Value _
and sh.Range("$A$1")>=(xTemp-(xTemp/2)) and sh.Range("$A$1")<=(xTemp+(xTemp/2)) _
and sh.Range("$A$2")>=(xPress-(xPress/2)) and sh.Range("$A$2")<=(xPress+(xPress/2)) _
and sh.Range("$A$3")>=(xFlow-(xFlow/2)) and sh.Range("$A$3")<=(xFlow+(xFlow/2)) _
Then
Set sh1 = sh
ListBox1.AddItem (sh1.Name) ' add the sheet on which it finds the chemical
End If
Next
[/VBA]