Création de noms dynamique
Résolu
farreneit
Messages postés
318
Statut
Membre
-
farreneit Messages postés 318 Statut Membre -
farreneit Messages postés 318 Statut Membre -
Bonjour,
Pour un projet j'ai du nommer plusieurs listes grâce au "Name Manager". Toutefois ces listes évoluent dans le temps et afin d'éviter de modifier manuellement ce grand nombre de listes j'aimerais utiliser VBA.
Je ne sais pas s'il est possible d'ordonner une modification des données integrées dans une liste, sinon je pense partir sur une suppression de tous les noms et une recréation (bien que cela soit moins pratique si je décide de nommer d'autres cellules pour un autre besoin).
J'ai trouvé un code sur internet que j'ai essayé d'adapter à ma situation mais je ne comprends pas totallement leur code :
Voici ci-joint une photo de la feuille en question, l'idée serait que chaque tableau devienne une liste avec comme noms les cellules : B1, E1, H1, ...

Merci d'avance pour votre aide !
Bon weekend
Pour un projet j'ai du nommer plusieurs listes grâce au "Name Manager". Toutefois ces listes évoluent dans le temps et afin d'éviter de modifier manuellement ce grand nombre de listes j'aimerais utiliser VBA.
Je ne sais pas s'il est possible d'ordonner une modification des données integrées dans une liste, sinon je pense partir sur une suppression de tous les noms et une recréation (bien que cela soit moins pratique si je décide de nommer d'autres cellules pour un autre besoin).
J'ai trouvé un code sur internet que j'ai essayé d'adapter à ma situation mais je ne comprends pas totallement leur code :
Sub actuanom()
'
' actuanom Macro
'
'
Dim LastCol As Long, _
Labelrow As Long, _
Col As Long
Dim sName As String
Dim c As Range
Dim Sht As String
'assign row and column parameters
'**adjust for the row containing your headings
Labelrow = 1
LastCol = Range("IV1").End(xlToLeft).Column
'grab sheet name
Sht = "'" & "TEST" & "'"
For Each c In Range(Cells(Labelrow, 1), Cells(Labelrow, LastCol))
Col = c.Column
sName = c.Value
If Len(sName) > 1 Then
'replace spaces with underscores
sName = Replace(sName, " ", "_", 1)
'Create the name
ActiveWorkbook.Names.Add Name:=sName, RefersToR1C1:="=OFFSET(" & Sht & "!R2C" & Col & ",0,0,COUNTA(" & Sht & "!C" & Col & ")-1,1)"
End If
Next c
End Sub
Voici ci-joint une photo de la feuille en question, l'idée serait que chaque tableau devienne une liste avec comme noms les cellules : B1, E1, H1, ...
Merci d'avance pour votre aide !
Bon weekend
A voir également:
- Création de noms dynamique
- Tableau croisé dynamique - Guide
- Creation de site web - Guide
- Creation de compte google - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
Merci pour ta réponse.
J’aimerais que les différents tableaux se nomment automatiquement.
Par exemple avec le screen que J’ai envoyé, la macro lancée devrait nommer la plage A2:B6 : FI.
Ensuite la plage D2:E6 : 1B ; la plage G2:H25 : 2B ; et ainsi de suite jusqu’à qu’il n’y ait plus de tableau.
Il se peut par contre que je créais plus tard de nouvelles listes à la suite ou que je rajoute des donnés dans les tableaux déjà existants. Il faudrait donc que quand je réactive la macro, les listes nommées se mettent à jour.
J’espère que c’est assez clair ?
Merci !
quel soucis as-tu avec l'écriture de la macro? tous tes tableaux ont la même largeur?
Mon problème est principalement sur les fonctions permettant de renommer les listes.
Oui tous les tableaux ont la meme largeur mais pas la meme longueur.
Je ne sais juste pas comment programmer mon If, possible de me donner un peu d'aide s'il te plait ?
Et sinon le reste du code te parrait correct ?
Merci !
Petite update, cela fonctionne. Il y a juste la partie du IF toujours manquante.