Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Réutilisation d'une procédure dans un code

1 réponse
Avatar
michir
Bonjour ,
MichD m'a propos=E9 une proc=E9dure sympa pour verrouiller les formules
dans une feuille. Elle fonctionne parfaitement
Je l'ai adapt=E9e pour d=E9verrouiller en neutralisant la derni=E8re ligne
Protect
Ma question, lorsque je prot=E8ge par cette proc=E9dure j'ai un conflit
avec une autre macro de D=E9masquage de lignes
J'ai donc besoin de d=E9prot=E9ger avant de d=E9masquer pour permettre =E0 =
la
macro de D=E9=F9asquage de fonctionner
Comment puis renvoyer, le code de d=E9verrouillage suivant =E0
l'uint=E9rieur de la macro de d=E9masquage ?

Sub DeVerrouiller()
With Worksheets("Devis")
.Unprotect
With .Cells
.Locked =3D False
With .SpecialCells(xlCellTypeFormulas)
.Locked =3D True
End With
End With
' .Protect 'Mot de passe si n=E9cessaire
End With
End Sub

1 réponse

Avatar
MichD
Bonjour,

Tu peux modifier la macro proposée comme ceci. Elle permettra d'exécuter la
macro que tu désires sur la feuille comme si cette dernière n'était pas protégée,
mais pour l'usager, il ne pourra pas accéder aux cellules verrouillées dans la feuille.

Tu dois mettre la procédure dans le ThisWorkbook de ton classeur :

'-------------------------------------------------
Private Sub Workbook_Open()

With Worksheets("Devis")
.Unprotect "MotDePasse"
With .Cells
.Locked = False
With .SpecialCells(xlCellTypeFormulas)
.Locked = True
End With
End With
.Protect "MotDePasse", DrawingObjects:=True, _
contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
End With

End Sub
'-------------------------------------------------


MichD
--------------------------------------------
"michir" a écrit dans le message de groupe de discussion :


Bonjour ,
MichD m'a proposé une procédure sympa pour verrouiller les formules
dans une feuille. Elle fonctionne parfaitement
Je l'ai adaptée pour déverrouiller en neutralisant la dernière ligne
Protect
Ma question, lorsque je protège par cette procédure j'ai un conflit
avec une autre macro de Démasquage de lignes
J'ai donc besoin de déprotéger avant de démasquer pour permettre à la
macro de Déùasquage de fonctionner
Comment puis renvoyer, le code de déverrouillage suivant à
l'uintérieur de la macro de démasquage ?

Sub DeVerrouiller()
With Worksheets("Devis")
.Unprotect
With .Cells
.Locked = False
With .SpecialCells(xlCellTypeFormulas)
.Locked = True
End With
End With
' .Protect 'Mot de passe si nécessaire
End With
End Sub