Tu élimines là où il y a des données que tu ne veux pas montrer, tu laisses une feuille ou deux maxi, c'est largement suffisant. Par contre, il vaut mieux laisser le code, que je vois s'il n'y a pas une interaction...
Mais auparavant, ayant émis l'hypothèse que 2013 ne supporte pas l'affectation simultanée de la copie à une variable objet, teste la version ci-dessous...
Conserve la déclaration As Object...
Sub ZoomCel()
Dim slc$
If celz Is Nothing Then
Application.ScreenUpdating = False
slc = Selection.Address
Selection.Copy
ActiveSheet.Pictures.Paste(link:=True).Select
Set celz = Selection
Application.CutCopyMode = False
With celz
.Width = .Width * zm
.Height = .Height * zm
.Left = (Application.Width - .Width) / 2
.Top = (Application.Height - .Height) / 2
.Interior.Color = RGB(255, 255, 153)
.OnAction = "SuppriCelz"
End With
ActiveSheet.Range(slc).Select
End If
End Sub