Public oldAdress As StringPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)
oldAdress = Target.address
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If oldAdress <> "$A$1" And oldAdress <> "$B$1" Then Exit Sub
Dim i As Integer, colFilter As Integer, aRange As String
If Application.Intersect(Target, Range("A1:B1")) Is Nothing Then Exit Sub
Select Case Target.address
Case "$A$1"
i = WorksheetFunction.Match(Target.Value, Sheets("Control").Range("SettingFilter[Type]"), 0)
aRange = WorksheetFunction.Index(Sheets("Control").Range("SettingFilter[NameTable]"), i, 1)
Range("B1").ClearContents
Call SetUpValidation(aRange)
oldAdress = "$A$1"
Case "$B$1"
If Range("B1").Value <> "" Then
colFilter = WorksheetFunction.Match(Range("A1").Value, Range("2:2"), 0)
ActiveSheet.ListObjects("TableAllocation").Range.AutoFilter Field:=colFilter, _
Criteria1:=Target.Value
Call optSortByName
oldAdress = "$B$1"
End If
End Select
End Sub