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.
 
Mais les noms ne semblent pas qualifiés par le nom de la feuille dans le Gestionnaire de noms même si leur "étendue" est la feuille.
Ce que je dis, c'est que je pense que si tu appelles tous tes Noms par exemple "MaPlage", quand tu utilises Sheets("Feuil1").Range("MaPlage") ça utilise alors la plage nommée MaPlage de la feuille "Feuil1".


Alors j'ai des gros doutes. Le préfixage par le CodeName fonctionne tel que je l'ai implémenté, alors...
Moi aussi j'ai un doute... il faut tester. 😉
 
Alors j'ai un gros problème en retrieve.
Si j'arrive à créer un nom X d'étendue feuille en parallèle d'un nom X d'étendue classeur, Evaluate() qui n'accepte d'être qualifié QUE par Worksheet n'est plus capable de me retourner la valeur du nom d'étendue classeur.
1714661817348.png


Set GetNameValue = Worksheet.Evaluate(Name) -> B1:B10
 
Ok Set GetNameValue = Worksheet.Application.Evaluate(Name)

Ceci dit, quand il y a le même nom au niveau feuille et au niveau classeur, même le ThisWorkbook.Names(Name).Value retourne la valeur du nom d'étendue feuille.

Alors j'ai l'impression que dans ce cas, la valeur du nom d'étendue classeur n'est pas atteignable.
Ce qui semble logique.
 
Ceci dit j'ai vraiment un gros souci avec cette instruction: Worksheet.Application.Evaluate(Name).

Soit la situation suivante:
1714664267940.png


Worksheet.Name = "Feuil1"
Worksheet.Parent.Names("TestName").Value ->=Feuil1!$A$1:$A$10
Worksheet.Application.Evaluate("TestName").Address -> $B$1:$B$10 (de la Feuil2 !!!)

Je ne peux pas compter sur Evaluate(). Il faut que j'utilise la Value.
Value = Worksheet.Parent.Names("TestName").Value
Range(Mid(Value, 2)).Address -> $A$1:$A$10 (de la Feuil1)
 
Dernière édition:
Oui mais si Application.Evaluate() n'est pas qualifié, je ne sais pas du tout où il va le prendre.
C'est pour ça que je suis retourné sur la Value dont au moins je suis sûr du contenu.
Je vérifie mon code et je le republierai avec l'option de étendue.
 
Quant au Delete c'est encore pire !
Quand des names sont identique mais pas sur la même étendue, malgré le fait que j'adresse explicitement un Name au Delete (par son nom ou par son indice, vérifiés par la Value) et il m'en delete un autre.

En fait il delete le 1er nom qu'il trouve dans la liste ! Même si on lui désigne le 2ème.
Et même si le nom interne est préfixé par le nom de la feuille, il s'en fout !
 
Dernière édition:
- 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

Réponses
14
Affichages
252
Réponses
72
Affichages
1 K
Retour