XL 2016 VBA - Une manière rapide de trouver les cellules verrouillées ?

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

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 !

Dudu2

XLDnaute Barbatruc
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.
 
Re

@Dudu2
Oui, je vois bien que tu le fais, mais je SUIS en VBA.
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.


PS: code initial de R. Rothstein
 
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.
 
Re

@Dudu2
Pour tester
J'ai d'abord fait CTRL+A puis décocher Verrouillé
Ensuite j'ai recoché Verrouillé sur plusieurs groupes de cellules

Et la macro les colorie alors en rouge identifiant ainsi rapidement en VBA (et sans boucle) les cellules verrouillées
J'ai bon là ?
😉
 
Re

@Dudu2
Ca a donné quoi ton test du code du message#46?
Tu valides ?

@TooFatBoy
Même remarque que dans le message#19
😉

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é 😉 )
 
On s'éloigne donc du cas de la plage unique portant le même nom fixe dans toutes les feuilles …
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

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
Réponses
17
Affichages
275
Retour