I have an inventory of approximately 200 rows and 250 columns of data, including short text and numbers. There are several formulas throughout and about 20% of all cells have Comments. I am using an ActiveX ListBox to sort and hide/unhide rows based on the text entries in a single column (IG). The ListBox macro is:
Private Sub ListBox1_Click()
    Select Case Range("A1")
        Case "SHOW ALL ROWS": Show_All_Rows
        Case "Apples": Show_Apples_Rows
        Case "Bananas": Show_Bananas_Rows
        Case "Carrots": Show_Carrots_Rows
        Case "Eggplant": Show_Eggplant_Rows
        Case "Fennel": Show_Fennel_Rows
End Select
End Sub
In my spreadsheet there are actually 18 different food groups, but you get the idea...

The macro for showing all rows is:
Sub Show_All_Rows()
    Dim cell As Range
    Application.ScreenUpdating = False
    Rows("5:200").EntireRow.Hidden = False
    Application.ScreenUpdating = True
End Sub
It is lightning fast. Works great.

A standard macro to show rows for just one food group is:
Sub Show_Apples_Rows()
    Dim cell As Range
    Application.ScreenUpdating = False
    For Each cell In Intersect(ActiveSheet.UsedRange, Range("IG10:IG200"))
        cell.EntireRow.Hidden = cell.Value <> "Apples" And Not IsEmpty(cell)
      Next cell
    ActiveWindow.ScrollRow = 9
    Application.ScreenUpdating = True
End Sub
Here's the problem. Selecting anything but "SHOW ALL ROWS" takes about 4-5 seconds. Is there some way I can speed this up without changing the macro to hide/unhide rows based on row #? I need to avoid this as the number of rows for each food group can change and I don't want to be constantly editing the macros to reflect that. Any ideas?

BTW, I also intend to do the same for columns, with a second ListBox. This will allow a user to quickly & accurately isolate just a few cells throughout this large sheet file. And, in case you're wondering, I'm using a ListBox rather than a ComboBox as I want to show the entire list at-a-glance, to hasten the selection process.

Thanks for your help. David