tu peux protéger tes feuilles à l'ouverture du fichier avec :
Dim ws As Worksheets
nbre_ws = ThisWorkbook.Worksheets.Count
For i = 2 To nbre_ws
Worksheets(i).protect "toto"
Next
et deproteger l'orsque tu as le besoin d'ecrire uniquement
Avec si c'est possible
au debut de la macro ("valider" par exemple) ajouter activesheet.unprotect "toto"
et a la fin activesheet.protect "toto"