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

Vérifier si une plage est définie par un nom [VBA]

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

Rep

XLDnaute Junior
Bonjour à tous !

Je bute depuis hier sur un test VBA tout bête : je souhaite savoir si la colonne D de ma feuille a un nom.

J'ai tenté :
Code:
If ThisWorkbook.Sheets("feuil1").Range("D:D").Name.Name = "" Then
    current_date = ""
Else
    current_date = Sheets("feuil1").Range("D:D").Name.Name
    current_date = CStr(Right(current_date, 8))
End If

Mais VBA me renvoit une erreur 1004. J'ai pensé à utiliser la fonction IsError, mais résultat idem.

Si une âme charitable pouvait m'aider, je l'en remercie par avance 😉
 
Re : Vérifier si une plage est définie par un nom [VBA]

Bonjour Rep,

Vous pouvez adapter cette macro :

Code:
Sub RechercheNom()
Dim nom As Name, dat As String
For Each nom In ThisWorkbook.Names
  If nom.RefersTo = "=" & ActiveSheet.Name & "!$D:$D" Then
    MsgBox "Nom de la colonne D : " & nom.Name
    'dat = Right(nom.Name, 8) 'éventuellement...
    'MsgBox dat
  End If
Next
End Sub
Notez qu'une plage peut avoir plusieurs noms...

Edit : bien sûr aussi, si la feuille s'appelle "Feuil1" :

Code:
Sub RechercheNom()
Dim nom As Name, dat As String
For Each nom In ThisWorkbook.Names
  If nom.RefersTo = "=Feuil1!$D:$D" Then
    MsgBox "Nom de la colonne D : " & nom.Name
    'dat = Right(nom.Name, 8) 'éventuellement...
    'MsgBox dat
  End If
Next
End Sub
A+
 
Dernière édition:
Re : Vérifier si une plage est définie par un nom [VBA]

Bonjour Rep, job 🙂

Une variante (juste parce que j'étais "dessus"):
Code:
    For Each n In ActiveWorkbook.Names
        If Mid(n.RefersTo, InStr(n.RefersTo, "!") + 1, 2) = "$D" Then MsgBox n.Name
    Next n
Permet de tester si la référence commence par $D ... attention au cas où le '$' serait absent!?
 
Re : Vérifier si une plage est définie par un nom [VBA]

Merci pour vos réponses.

C'est quasiment ce que je cherchais, merci 😉

N'y a-t-il pas moyen d'éviter de passer par une boucle? Le fichier que je crée devrait avoir un certain nombre de noms définis lorsqu'il sera opérationnel et l'utilisation du For ... Each risque de sérieusement ralentir l'exécution de la macro...
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…