Not sure how you want to copy (as a block or line by line), you may want to turn the macro recorder on and then perform the copy, turn the recorder off and edit the macro as necessary.
As for the line hiding, assuming the test is in column "C", then the macro would look something like this:
Sub RwHide ()
Dim RwCnt as integer
For RwCnt = 2 to 1000
If Range("C" & RwCnt) = 0 Then
Range("C" & RwCnt).EntireRow.Hidden = True
Next
End Sub
Do it as a four step process: copy the cells, filter for 0's, delete and then reveal all. Code is below. Change A1 to where the begining of the data is (add worksheet reference). Change C1 to where you want the data (add worksheet location). Change the C:C to the column the 0's are in et voila...
Regards,
Henry
Range("A1").Select
Range(Selection.End(xlRight))., Selection.End(xlDown)).Select
Selection.Copy
Range("C1").Select
ActiveSheet.Paste
Range("C:C").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="0"
Rows("1:800").Select
Selection.Delete Shift:=xlUp
Selection.AutoFilter Field:=1
Selection.AutoFilter