Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016VBA - Une manière rapide de trouver les cellules verrouillées ?
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
Je n'y crois pas trop, mais à part parcourir les cellules une à une (ce qui n'est envisageable que sur un Range limité) y a-t-il un moyen de trouver le Range des cellules verrouillées d'une feuille ?
Merci.
Puisque VBA demandé, tout en utilisant mon CTRL+F 😉
Code:
Sub CellulesVerrouillées()
With Application
.FindFormat.Clear: .ReplaceFormat.Clear
.FindFormat.Locked = -1
.ReplaceFormat.Interior.Color = RGB(255, 0, 0)
Cells.Replace "", "", , , , , True, True
.FindFormat.Clear: .ReplaceFormat.Clear
End With
End Sub
Ne pas tester sur une feuille vierge
(puisque par défaut toutes les cellules d'une feuille sont verrouillées)
L'inconvénient du code ci-dessus c'est qu'il colorie toutes les cellules et pas seulement celles de plages nommées.
En fait je rappelle le truc...
En VBA je dois créer une "plage sécurisée" dans des feuilles => Locked = True sur cette plage et feuille protégée.
A l'affichage bien ultérieur d'une feuille je dois retrouver cette "plage sécurisée".
Le seul moyen jusque là est de stocker l'adresse de cette "plage sécurisée" dans un nom du gestionnaire de noms relatif à la feuille.
Maintenant, pour retrouver cette "plage sécurisée" sans en stocker l'adresse dans un nom, je vais essayer le code de @Staple1600 que je n'ai pas bien compris en 1ère lecture.
Le problème c'est que [LeNom] doit être... le nom.
Si je passe un paramètre Name, je ne peux pas y faire référence entre crochets.
Mais en tant que Range(valeur string de LeNom).
Sinon pour ta question de rapidité, je n'en sais rien et je ne cherche pas à la savoir
Cette discussion est celle de @Dudu2, pas la mienne.
Je te laisse faire le test, il te suffit pour cela de rajouter N lignes de code pour le savoir
(ce qui n'est pas top quand on se préoccupe de rapidité 😉 )
Pour l'instant je n'ai besoin que d'une seule plage (multi-areas éventuellement) par feuille.
Je préfixe le nom de cette plage par le CodeName de la feuille.
Ex: Name = ActiveSheet.CodeName & "°PlageSécurisée"
Comment référencer un Nom de la Feuille ou parcourir la collection Names de l'objet Worksheet ?
Et aussi comment créer un Nom qui soit rattaché à une feuille ? Est-ce le préfixe du Range Feuil1! qui le définit ?
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD