Créer des noms de manière dynamique

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

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

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
 
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 🙂
 
- 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
18
Affichages
385
Réponses
4
Affichages
291
Réponses
9
Affichages
486
Retour