Refresh and filter then copy data using a macro in an excel report

This is an easy code, normally, I will use the “record macro” option so excel will create the macro for me then I will copy the data because excel doesn’t understand that I want to copy only the filtered data. In fact, it does it correctly during the recording but after, during the testing, it doesn’t.

formula excel formula excel


When I use the macro ?

Each time I need to clear first the filter so to copy correctly the new data then I need to filter it again to get the new results in order to copy them.


How to create the macro ?

Read How to create, edit, hide and select a macro in an excel report


How to create the button to associate it with the macro ?

Read How to create a button and associated it to a macro in an excel report


How is the macro ?

Copy the code below and paste it into your macro. You will see my comments in green if exist so follow the help to adapt to your need.

This code is to unfilter:

Sub test()
' change B1 by yours clearing the filter to get all data
End Sub

This code is to filter new data then copy and paste it to another sheet:

Sub test()
Dim lastrow As Integer
lastrow = Range("A2").End(xlDown).Row
' filter linux on column B = 2, you can use wildcard ie "un*"
' to filter unix and linux, change ("linux") by ("linux", "unix")
ActiveSheet.Range("$A$1:$C$1").AutoFilter Field:=2, Criteria1:=Array("linux"), Operator:=xlFilterValues
' copy data from A to C then paste it in sheet2 on cell A2
Range("A2:C" & lastrow).SpecialCells(xlCellTypeVisible).Copy Worksheets("Sheet2").Range("A2")
End Sub

Interesting Management