Lister certains noms de plages nommées d'une feuille

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Dans une feuille j'ai un certain nombre de cellules et de plages qui ont été nommées.
Parmi ces éléments nommés, certains portent le même préfixe, à savoir "Colonne" : "Colonne1", "Colonne2", ... , "Colonne36".
Comment s'y prend-t-on pour récupérer, parmi ces plages nommées, seulement les noms qui commencent par "Colonne" et savoir combien il y en a ?

Merci pour toute aide.
 

PMO2

XLDnaute Accro
Re : Lister certains noms de plages nommées d'une feuille

Bonjour,

Essayez
Code:
Sub aa()
Dim N As Name
Dim cpt&    'compteur
'---
For Each N In ActiveWorkbook.Names
  If InStr(1, N.Name, "Colonne") > 0 Then
    MsgBox N.Name & "   " & N.RefersTo
    cpt& = cpt& + 1
  End If
Next N
If cpt& > 0 Then MsgBox "Total : " & cpt&
End Sub
 

Magic_Doctor

XLDnaute Barbatruc
Re : Lister certains noms de plages nommées d'une feuille

Bonjour tototiti,

Effectivement, j'ai omis de spécifier où devrait se faire la récupération.
Dans un "Array".
Je m'explique.
Supposons qu'il y ait 12 plages nommées "Colonne" ("Colonne1" à "Colonne12").
J'obtiendrai alors : col = Array ("Colonne1", "Colonne2", ..., "Colonne12")
S'il n'y avait que 4 plages nommées "Colonne" ("Colonne1" à "Colonne4").
Nous obtiendrions : col = Array ("Colonne1", "Colonne2", ..., "Colonne4")
 

Magic_Doctor

XLDnaute Barbatruc
Re : Lister certains noms de plages nommées d'une feuille

Bonjour job,PMO,

job faut pas s'facher, j'allais revenir sur ce post, ce que je vais faire sur le champ.

Merci PMO2 pour votre intervention.
J'ai exécuté votre macro. Le problème, c'est qu'elle me renvoie toutes les plages nommées comportant à un moment donné le mot "Colonne", par exemple "Import_Colonne1" qui, en plus, se trouve dans une autre feuille du classeur.
Toutes les plages "Colonne" ("Colonne1", "Colonne2",...) se trouvent dans la même feuille. Il s'agirait donc d'identifier uniquement, dans une même feuille, les plages nommées dont le nom est "Colonne" suivi uniquement d'un chiffre.

Bon, mais ça avance.

Merci pour vos réponses.
 

tototiti2008

XLDnaute Barbatruc
Re : Lister certains noms de plages nommées d'une feuille

Re,

un essai

Code:
Sub Test()
Dim Nm As Name, Tablo() As String
    ReDim Tablo(1 To 2, 1 To 1)
    For Each Nm In ThisWorkbook.Names
        If Nm.Name Like "Colonne*" Then
            Tablo(1, UBound(Tablo, 2)) = Nm.Name
            Tablo(2, UBound(Tablo, 2)) = Nm.RefersTo
            ReDim Preserve Tablo(1 To 2, 1 To UBound(Tablo, 2) + 1)
        End If
    Next
    If UBound(Tablo, 2) > 1 Then ReDim Preserve Tablo(1 To 2, 1 To UBound(Tablo, 2) - 1)
End Sub
 

PMO2

XLDnaute Accro
Re : Lister certains noms de plages nommées d'une feuille

J'ai exécuté votre macro. Le problème, c'est qu'elle me renvoie toutes les plages nommées comportant à un moment donné le mot "Colonne", par exemple "Import_Colonne1" qui, en plus, se trouve dans une autre feuille du classeur.

Bonjour,

Essayez alors
Code:
Sub aa()
Dim N As Name
Dim cpt&    'compteur
'---
For Each N In ActiveSheet.Names
  If Left(N.Name, 7) = "Colonne" Then
    MsgBox N.Name & "   " & N.RefersTo
    cpt& = cpt& + 1
  End If
Next N
If cpt& > 0 Then MsgBox "Total : " & cpt&
End Sub
 

Magic_Doctor

XLDnaute Barbatruc
Re : Lister certains noms de plages nommées d'une feuille

Bonsoir tototiti, job, PMO2, le forum,

Pas pu répondre avant pour des raisons techniques de connexion "en el campo".

J'ai essayé la solution de tototiti et celle de PMO2, ma foi cela n'a rien donné. J'ai même tenté d'utiliser le "Debug Print" pour voir, mais rien...
Même si job m'a réglé le problème que j'avais soumis sur un autre fil :
Lien supprimé
pour satisfaire ma curiosité, j'aurais bien voulu voir se dresser la liste de toutes les plages nommées dont le préfixe est "Colonne". Sait-on jamais, ça peut toujours servir un jour ou l'autre.

En tout cas, merci à tous pour votre aide.
 

Discussions similaires