On va conserver tes variables Cellule et Zone. Vide est inutile, et tu ne l'utilises d'ailleurs pas en fait !
Tu n'as que 2 colonnes et tu ne t'intéresses qu'à une, pas la peine de mobiliser SpecialCells..., End(xlUp) suffira...
On n'a pas à détecter la fin de ton tableau puisqu'on la définit avant, ni à s'occuper de valeurs autres que "null", puisqu'on supprime dans ce cas et pas dans les autres.
On ne va d'ailleurs pas supprimer le lignes une par une, on efface pour les supprimer en bloc à la fin (et si des lignes intermédiaires étaient vides, elles seront supprimées du même coup).
Et on va prendre la précaution de couvrir "NULL" et "null".
Sub Mac()
Dim Cellule As Range, Zone As Range
With Sheets(1)
Set Zone = .Range("B1:B" & .Range("B" & .Rows.Count).End(xlUp).Row)
End With
Application.ScreenUpdating = False
For Each Cellule In Zone
If UCase(Cellule) = "NULL" Then Cellule.ClearContents
Next Cellule
Zone.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
Cordialement.