Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 
Voilà. En fin la parcourir, non ! Worksheet.Range("LeNom") provoque une erreur si la plage nommée n'existe pas. Pas besoin de parcourir sa collection Names.
 
Dernière édition:
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.


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.
 
Oui étonnant, mais peut-être pas tant que ça car le même nom référence la même feuille.
Il est logique qu'il donne la préférence à la feuille.
Mais oui, à éviter pour ne pas se poser des questions métaphysiques.
 
Ceci dit j'ai vraiment un gros souci avec cette instruction: Worksheet.Application.Evaluate(Name).

Soit la situation suivante:


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:
Pour prendre la méthode Evaluate de l'objet Application il n'y a pas à préciser Worksheet devant. Mais de toute façon j'évite d'utiliser les méthodes de l'objet Application que possède aussi l'objet Worksheet.
 
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
253
Réponses
72
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…