Alors tu passes par une macro qui, à la validation de ton userform, juste avant d'envoyer les différents champs dans les cellules, se charge de déprotéger ta feuille. Ensuite, après la mise à jour de ces champs, tu appelles une seconde macro qui reprotège ta feuille. Voilà ce que ça peut donner :
Sub Protege_Une_Feuille(P_Feuille)
Worksheets(P_Feuille).Protect
End Sub
Sub Deprotege_Une_Feuille(P_Feuille)
Worksheets(P_Feuille).Unprotect
End Sub
'ton userform peut alors appeler une proc qui se charge de mettre à jour la feuille, du genre :
Sub Transfere_Le_Formulaire()
Deprotege_Une_Feuille "NomDeTaFeuille"
...mise à jour des cellules...
Protege_Une_Feuille "NomDeTaFeuille"
End Sub
Pour protéger ou déprotéger toutes les feuilles à la fois, utilise les variantes suivantes :
Private Sub Protege_les_Feuilles()
Dim L_Feuille
For Each L_Feuille In Worksheets
L_Feuille.Protect
Next L_Feuille
End Sub
Private Sub Deprotege_les_Feuilles()
Dim L_Feuille
For Each L_Feuille In Worksheets
L_Feuille.Unprotect
Next L_Feuille
End Sub