Eliminando le righe (o anche le celle), pur utilizzando riferimenti assoluti ($A$1 al posto di A1) o nomi in una formula cui fa riferimento il range/matrice dove vengono eliminate le righe/celle, il range di riferimento cambia in automatico.
Per non andare a modificare le formule che hai già utilizzato, ho modificato il codice, non fa nient'altro che cancellare i dati e traslarli verso l'alto, senza eliminare le righe, in questo modo le tue formule non cambiano il range che hai impostato.
- Codice: Seleziona tutto
Sub Elimina_Righe_Zero()
Application.ScreenUpdating = False
righe = Sheets(1).Range("A65356").End(xlUp).Row
cont = 0
i = 1
While Cells(i, 5) <> ""
If Cells(i, 5) = 0 Then
For y = 1 To righe - cont
For k = 1 To 5
Cells(i, k) = Cells(i + 1, k)
Next k
Next y
For k = 1 To 5
Cells(righe - cont, k) = ""
Next k
cont = cont + 1
i = i - 1
End If
i = i + 1
Wend
Application.ScreenUpdating = True
End Sub