In your worksheet_activate code, you could do something like:
Option Explicit
Private Sub Worksheet_Activate()
Dim myRng As Range
Set myRng = me.Range("C12:c33")
me.AutoFilterMode = False
myRng.AutoFilter field:=1, Criteria1:="critical"
End Sub
I removed any existing autofilter and then applied the filter (one row up for
the header).
If the existing autofilter is A12:x9999 (includes your column), you could:
Option Explicit
Private Sub Worksheet_Activate()
Dim myRng As Range
With Me
Set myRng = .Range("C12:C33")
If Intersect(myRng, .AutoFilter.Range) Is Nothing Then
'msgbox "filter in the wrong spot"
Exit Sub
Else
If .AutoFilterMode Then
If .FilterMode Then
.ShowAllData
End If
.AutoFilter.Range.AutoFilter field:=3, Criteria1:="critical"
Else
'do nothing
MsgBox "worksheet must have autofilter"
End If
End If
End With
End Sub