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

Protection via macro

3 réponses
Avatar
Raphael
Bonjour,

J'ai dans un classeur Excel un formulaire qui me permet de
proteger/deproteger mes onglets.
Mais, je voudrai que ma protection empeche les utilisateurs de
selectionner les cellules verrouill=E9es.

Merci de m'indiquer comment faire? et meme, ou je pourrais trouver les
parametres disponibles pour les commandes vb?

Merci,

Raphael

3 réponses

Avatar
LSteph
Bonjour,
La question des cellules verrouillées ou non c'est dans format, en vba
.Locked:=true ou false
Pour la protection
Dans un module tapes
Protect
tu surlignes et appuie sur F1pour en savoir plus !
Sinon,
si tu veux pouvoir agir par macro mais empêcher seul l'utilisateur regarde
le paramètre
userinterfaceonly
pour déprotèger c'est unprotect
Tu peux utiliser également Option private module, ici j'ai mis en private
sub pour un module ordinaire
afin qu'on ne les voit pas dans outil macros mais on peut qd même les y les
taper si on connait le nom de la sub
ou tu peux aussi mettre cela dans le thisworkbook en Private sub
Workbook_open() pour protèger à l'ouverture du classeur.
Il conviendra bien sûr de protèger le projet dans VBE

ex simplifié à adapter :
'***
Private Sub protall()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Protect "mdp", userinterfaceonly:=True
Next
End Sub

Sub test()
[c15] = "par macro on peut"
End Sub

Private Sub unprotall()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.Unprotect "mdp"
Next
End Sub

'***

'lSteph

"Raphael" a écrit dans le message de news:

Bonjour,

J'ai dans un classeur Excel un formulaire qui me permet de
proteger/deproteger mes onglets.
Mais, je voudrai que ma protection empeche les utilisateurs de
selectionner les cellules verrouillées.

Merci de m'indiquer comment faire? et meme, ou je pourrais trouver les
parametres disponibles pour les commandes vb?

Merci,

Raphael
Avatar
JB
Bonjour,

Sur cet exemple, on suppose que E1:G10 sont déverrouilés. Si
l'opérateur clique sur une cellule vérrouillée, on positionne le
curseur sur E1:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Locked = True Then
Range("E1").Select
End If
End Sub

Cordialement JB
Avatar
Raphael
Bonjour,

Merci pour vos 2 reponses... j'ai réussi a mettre en place ma macro.

Raphael