Bonjour,
Dans
If sh.ProtectContents Then sh.Unprotect Password:=PWD
sh est une variable définie en "WorkSheet" mais qui n'est pas initialisée. Il faudrait utiliser :
soit directement :
If Worksheets("nomdelaFeuille").ProtectContents .../...
soit initialiser la variable sh:
Set sh = Worksheets("nomdelaFeuille")
If sh.ProtectContents .../...
soit, puisqu'on utilise With ActiveSheet :
If .ProtectContents .../...
A+