Here is an example that you can adapt to your needs:
Sub moveUm()
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Sheets("Sheet1")
Set s2 = Sheets("Sheet2")
s1.Activate
Set rr = ActiveSheet.UsedRange
n = 1
For Each r In rr
v = r.Value
If v <> 0 Then
s2.Cells(n, "A").Value = v
n = n + 1
End If
Next
End Sub
>> Stay informed about: Copy cells with value 0 as a list