Voilà le code dont j'avais besoin.
On desactive la protection pour lancer la procédure macro
ensuite on protege le classeur après la procédure
sub macro()
ActiveWorkbook.Unprotect Password:="hahahahaha"
Procedure Macro
ActiveWorkbook.Protect Structure:=True, Windows:=False, Password:="hahahahaha"
end sub
Merci à tous