OK.. I'll have to make a modification.
this ONLY looks for "F" in column "A"...
but you said that it could be anywhere...
Any cell that contains only "F" should be changed...
I'll make the changes.
Try this one:
Option Explicit
Sub Update()
Dim Data_Rowcnt, I, C, HideCnt, AlertFlag
HideCnt = 0
Application.ScreenUpdating = False
Data_Rowcnt = Application.WorksheetFunction.CountA(Range("A1: A65500"))
Cells.EntireRow.Hidden = False
Application.StatusBar = "Processing " & Data_Rowcnt & " Records"
For I = 1 To Data_Rowcnt
If (I Mod (Round(Data_Rowcnt / 20, 0)) = 0) Then
Application.StatusBar = I & " of " & Data_Rowcnt & " = " & Round((I /
Data_Rowcnt) * 100, 0) & "%"
AlertFlag = False
For C = 1 To 20 'Look in columns A to T
If (UCase(Cells(I, C)) = "F") Then
Cells(I, 1) = "Alert"
AlertFlag = True
Exit For
End If
Next C
If (UCase(Cells(I, 12)) = "PASSPORT") And (Not AlertFlag) Then
HideCnt = HideCnt + 1
Rows(I).EntireRow.Hidden = True
End If
Next I
Cells.Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, _
Order2:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Application.ScreenUpdating = True
MsgBox HideCnt & " rows hidden"
Application.StatusBar = False
End Sub
BEWARE: It DOES "assume" that there ALWAYS is data in column "A".
If this is not a good assumption, are there other columns that
ALWAYS have data?