Re, Salut Theze !
Tu pourrais y arriver avec quelque chose comme ça :
Sub Effacer()
Dim zz, fc, i%
zz = Names("zzda1").RefersTo
zz = Replace(Replace(zz, "=", ""), "$", "")
zz = Split(zz, ",")
For i = 0 To UBound(zz)
fc = Split(zz(i), "!")
Worksheets(fc(0)).Range(fc(1)).ClearContents
Next i
End Sub
Cependant je conseillerais plutôt d'abandonner cette définition de nom multizones-multifeuilles !
En nommant chaque cellule du même nom mais avec extension du nom limitée à la feuille, tu pourrais faire fonctionner ta méthode initiale :
Sub Effacer()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Range("zzda1").ClearContents
Next ws
End Sub
Ou bien tu suis la voie indiquée par Theze...
Cordialement.