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

Retrouver le Name d'un Range

  • Initiateur de la discussion Initiateur de la discussion ludo27
  • 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 !

L

ludo27

Guest
bonjour,
j'ai développé une petite fonction qui permet de retrouver le premier Name défini sur un range passé en paramètre :

Code:
Function SearchName(MyRange As Range, Optional bGlobal As Boolean = True) As Name
Dim N As Name
On Error GoTo error_SearchName

    If (bGlobal) Then
    For Each N In MyRange.Application.ActiveWorkbook.Names
        If N.RefersToR1C1 = MyRange Then
            Set SearchName = N
            Exit Function
        End If
    Next N
    Else:
        For Each N In MyRange.Worksheet.Names
        If N.RefersToR1C1 = MyRange Then
            Set SearchName = N
            Exit Function
        End If
        Next N
    End If
    
    Exit Function
error_SearchName:
    Set SearchName = Null
End Function

la ligne
Code:
If N.RefersToR1C1 = MyRange Then
me donne l'erreur :
Incompatibilité de type

Je n'arrive pas à parcourir tous les Names du classeur et à comparer la valeur de leur attribut RefersToR1C1.

Si quelqu'un a une idée, ou une autre manière de récupérer le name d'un range ...

Merci 😉
 
Re : Retrouver le Name d'un Range

Bonjour Ludo27 🙂,
Je ne suis pas sûr d'avoir tout bien compris, mais si tu utilisais Intersect pour savoir si ton Range se croise avec ton Name ?
Bonne journée 😎
 
Re : Retrouver le Name d'un Range

Bonjour Ludo27 🙂,
Je ne suis pas sûr d'avoir tout bien compris, mais si tu utilisais Intersect pour savoir si ton Range se croise avec ton Name ?
Bonne journée 😎
Merci JNP; je cherche à savoir parmi les Names du workbook, lequel est défini à partir du range MyRange.

Ajouté avec :
Code:
MyRange.Application.ActiveWorkbook.Names.Add Name:=MyName, RefersToR1C1:=MyRange

Je ne vois pas de propriété Intersect aux Names.
😉


A priori N.RefersTo ou N.RefersToR1C1 renvoie un String et pas un Name.
je suis en train d'essayer de matcher N.RefersTo à MyRange.Address ... je n'arrive pas à trouver le Name qui va bien mais je n'ai plus l'erreur ...
 
Dernière modification par un modérateur:
Re : Retrouver le Name d'un Range

J'ai trouvé :
le test à faire était :
Code:
If N.RefersToLocal = MyRange.Name Then

Code:
Function SearchName(MyRange As Range, Optional bGlobal As Boolean = True) As Name
Dim N As Name
On Error GoTo error_SearchName

    If (bGlobal) Then
    For Each N In MyRange.Application.ActiveWorkbook.Names
        If N.RefersToLocal = MyRange.Name Then
            Set SearchName = N
            Exit Function
        End If
    Next N
    Else:
        For Each N In MyRange.Worksheet.Names
      If N.RefersToLocal = MyRange.Name Then
            Set SearchName = N
            Exit Function
        End If
        Next N
    End If
    
    Exit Function
error_SearchName:
    Set SearchName = Null
End Function

🙂
 
Re : Retrouver le Name d'un Range

Re Ludo27 🙂,
Je pensais que tu voulais vérifier si une plage nommée correspondait à ta sélection,d'où l'idée d'utiliser Intersect pour vérifier si la plage nommée et ton range avaient une intersection...
Maintenant, en exécutant en pas à pas ta fonction, il semblerait que ton N.RefersToR1C1 renvoie quelque chose du type "=Feuil1!R9C3:R18C3", ce qui ne parait pas correspondre à l'adresse de ton Range.
Bonne journée 😎
Modif : Impeccable, tu as trouvé
 
Dernière édition:
Re : Retrouver le Name d'un Range

bonjour a tous

pour la comparaison:

Code:
If N.RefersToR1C1 = MyRange.Address(ReferenceStyle:=xlR1C1) Then

ensuite : ne mettre la gestion d'erreur que lorsque la fonction est operationnelle

Par ailleurs

MyRange.Application.ActiveWorkbook.Names ne me semble pas correct

ActiveWorkbook.Names devant suffire

Enfin Null est de type Variant et ne peut donc faire reference a un Name

bon courage
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
451
Réponses
7
Affichages
459
Réponses
2
Affichages
530
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…