HI Hi chichaspowa,

I don't know where you want the code, so I added a couple of command buttons to demonstrate the code that I came up with.
- Hopefully it will work ok as part of your other code.

I attached a sample workbook that contains the code and command buttons shown below.
[vba]Private Sub CommandButton2_Click()
''// SET FILTER RANGE and Filter Column 18 for values greater than zero
Dim wks As Worksheet
Dim rng As Range
Dim LastRow As Long

'If Application.CutCopyMode = xlCut _
'Or Application.CutCopyMode = xlCopy _
'Or Selection.Cells.Count > 1 _
'Or Range("R14").Value = "" Then Exit Sub ''("R1") being empty may cause an error, or filter on wrong row.
'// If using in the selection change event, replace command below with the code above
If Range("R14").Value = "" Then
MsgBox "You cannot work with the Filter if Range(R14) is Empty"
Exit Sub ''("R1") being empty may cause an error, or filter on wrong row.
End If

If ActiveSheet.FilterMode = True Then
'' Exit if data is filtered - Range does not need to be reset.
Exit Sub
Else
'' Run code
Set wks = ActiveSheet
With wks
LastRow = .[R65536].End(xlUp).Row '' R is Column 18

'' In this example Row 14 is the Header & Column 18 get's the Filter
Set rng = .Range(.Cells(14, 2), .Cells(LastRow, 18)) 'Range Col 2 to Col 18

If rng Is Nothing Then
'' MsgBox "There was a problem setting the Filter Range"
Exit Sub
Else
'' Release all filters. To release only Column 18 filter Uncomment Field:=17
ActiveSheet.ListObjects("Table5").Range.AutoFilter ' Field:=17
DoEvents
rng.AutoFilter
End If
End With
End If

ActiveSheet.ListObjects("Table5").Range.AutoFilter Field:=17, Criteria1:= _
">0", Operator:=xlAnd

End Sub


Private Sub CommandButton3_Click()
''// RELEASE FILTERS and reset range
Dim wks As Worksheet
Dim rng As Range
Dim LastRow As Long

If Range("R14").Value = "" Then
MsgBox "You cannot work with the Filter if Range(R14) is Empty"
Exit Sub ''("R1") being empty may cause an error, or filter on wrong row.
End If

Set wks = ActiveSheet
With wks
LastRow = .[R65536].End(xlUp).Row '' R is Column 18

'' In this example Row 14 is the Header & Column 18 get's the Filter
Set rng = .Range(.Cells(14, 2), .Cells(LastRow, 18)) 'Range Col 2 to Col 18

If rng Is Nothing Then
' MsgBox "There was a problem setting the Filter Range"
Exit Sub
Else
'' Release all filters. To release only Column 18 filter Uncomment Field:=17
ActiveSheet.ListObjects("Table5").Range.AutoFilter ' Field:=17
DoEvents
rng.AutoFilter
End If
End With

End Sub[/vba]