Try with this macro:
Sub Macro1()
   With ThisWorkbook.Sheets("sheet1")
      firstFreeRow = .Range("a1").CurrentRegion.Rows.Count + 1
   
      areasCount = .Range("c2:c" & firstFreeRow - 1).SpecialCells(xlCellTypeVisible). _
                   Areas.Count
   
      aAddress = Split(.Range("c2:c" & firstFreeRow - 1).SpecialCells(xlCellTypeVisible) _
                 .Areas(areasCount).Address(False, False), ":")
      
      lastFilteredRow = Range(aAddress(UBound(aAddress))).Row
      
      'to copy data you can write:
      .Cells(lastFilteredRow, "c").Copy .Cells(firstFreeRow, "c")
   End With
End Sub
Regards,
Antonio