Hi Lymm ,
In case you are still interested to know why your code did not work , the problem is the statement :
cell.EntireRow.Hidden = cell.Value = "Culled"
What you want to do is the following :
If the word Culled appears anywhere in a row ( between the columns A and Q , and the rows 2 and 150 ) , then hide that row.
The problem with the statement the way it has been phrased , is that it does the following :
If the word Culled appears anywhere in a row ( between the columns A and Q , and the rows 2 and 150 ) , then hide that row , else unhide that row.
The FOR EACH .... NEXT statement goes through the range A2:Q150 row by row i.e. it examines the cells in the following order :
A2 , B2 , C2 ,...., P2 , Q2 ,
A3 , B3 , C3 ,...., P3 , Q3 ,
.
.
.
A150 , B150 , C150 ,...., P150 , Q150.
Thus if the word Culled appears in cell A37 , then the statement hides row 37 ; when it goes to the next cell which is B37 , and does not find the word Culled in it , it unhides the row !
The way Lohith Sriram has phrased the statement is the correct way , since if the word does not appear in a cell , the statement does nothing.
Narayan