Créer des noms de manière dynamique

fb62840

XLDnaute Impliqué
Bonjour à toutes et à tous,

J'ai besoin de créer des noms dynamique de plages de cellules
dynamique car les noms en colonne seront plus ou moins nombreux au fil du temps
et les nombre d'items dans les listes sous les noms seront plus ou moins nombreux également au fil du temps

Sur la feuille ListEm

J'ai une série de noms en colonnes
(Cette série de noms peut changer (il peut y en avoir plus ou moins au fil du temps)
et, sous chacun de ces noms j'ai des valeurs qui peuvent changer (c'est à dire que là où il y en a 3, il peut y en avoir plus tard 5 etc).

Pourriez-vous m'aider à y parvenir ?

Merci beaucoup.
 

Pièces jointes

  • Test1.xls
    21 KB · Affichages: 45
  • Test1.xls
    21 KB · Affichages: 52

fb62840

XLDnaute Impliqué
Re : Créer des noms de manière dynamique

Bonjour à toutes et à tous,



Dans ce cas, une autre suggestion avec la suppression préalable des noms.

Code:
Option Explicit
Sub Noms_supprimer_définir()
    Dim n As Name, Col&
    For Each n In ActiveWorkbook.Names
        If Left(n.Name, 1) = "_" Then n.Delete
    Next
    '---------------------------------- code de JCGL (merci !)----------------------------------
    For Col = 1 To Range("IV1").End(xlToLeft).Column
        Range(Cells(2, Col), Cells(Rows.Count, Col).End(xlUp)).Name = Cells(1, Col)
    Next Col
    '-------------------------------------------------------------------------------------------------
End Sub

N.B. : les valeurs situées en ligne 1 ne doivent comporter aucun espace et le premier caractère doit être un _

A bientôt :)

Merci beaucoup pour votre aide, ça marche très bien comme ça.

Bonne journée
 

DoubleZero

XLDnaute Barbatruc
Re : Créer des noms de manière dynamique

Re-bonjour,

L'insertion du _ en début de cellule peut être automatisée...


Code:
    Dim n As Name, Col&, c As Range
    For Each c In Rows("1:1").SpecialCells(xlCellTypeConstants, 23)
        If Left(c, 1) <> "_" Then c = "_" & c
    Next
    For Each n In ActiveWorkbook.Names
        If Left(n.Name, 1) = "_" Then n.Delete
    Next

A bientôt :)
 

Discussions similaires

Statistiques des forums

Discussions
312 590
Messages
2 090 040
Membres
104 354
dernier inscrit
Chass