When the user deletes an entry in cell B2 etc it takes 10 second to finish filtering (and show all) when running this in Excel 2010 but it is much faster in Excel 2003. What is different? How do I fix it.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cell that will
' cause an Advance Filter action when they are changed.
Set KeyCells = Range("A2:A2")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
'Automatically cause an Advance Filter action on cell entry
' AddressFilter Macro
'
Range("A3:K4426").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("A1:C2"), _
Unique:=False
Range("A4").Select
Range("B2").Select
End If
Dim KeyCells2 As Range
Dim rngCell As Range
' The variable KeyCells2 contains the cells that will
' add a Wilcard to the end of an entry and
' cause an Advance Filter action when they are changed.
Set KeyCells2 = Range("B2:C2")
If Not Intersect(KeyCells2, Range(Target.Address)) Is Nothing Then
'do not trigger event on change
Application.EnableEvents = False
For Each rngCell In KeyCells2
With rngCell
If Not Right(.Value, 1) = "*" And Len(.Value) > 0 Then
.Value = .Value & "*"
End If
End With
Next rngCell
Application.EnableEvents = True
'Automatically cause an Advance Filter action on cell entry
' AddressFilter Macro
'
Range("A3:K4426").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("A1:C2"), _
Unique:=False
Range("B2").Select
End If
Set KeyCells = Nothing
Set KeyCells2 = Nothing
End Sub
Bookmarks