Gérer les incrémentations d'Excel pour les noms donnés aux tableaux

Bonjour à tous,

Voici la macro que je veux réaliser : je n'ai rien commencé encore

ACTIONS :

- Copier de la colonne A:AC (sur ces colonnes là se trouvent un certain nombres de tableaux)

- Coller notre copie sur une autre feuille

- Définir à chacun des tableaux de notre nouvelle feuille, une ligne total.

PROBLEME :

Pour les lignes de totaux, je dois spécifier un nom de tableau dans ma macro. Sauf que je ne comprends rien à l'incrémentation d'Excel quant à ces noms de tableaux. Ca n'a aucun sens pour moi.

De plus ces actions là je veux pouvoir les effectuer sur d'autres classeurs sauf que du coup les noms de tableaux seront encore une fois différent. Et je ne pourrais pas utiliser ma macro sur un autre classeur.

Merci d'avance
,

Bonjour

Si tu parles de tableaux structurés, on ne garde jamais les noms automatiques. J'imagine que tu ne travailles pas avec des classeurs nommées Classeur1, Classeur2 et des onglets Feuil1, Feuil2... Et bien c'est encore plus important pour les tableaux de changer ce nom automatique si on veut s'y retrouver

Il est aussi préférable de copier l'onglet et d'avoir déjà la ligne des totaux activée au lieu de bidouiller après copie...

Tu pourras ainsi retouver les noms des tableaux en cherchant le nom initial et l'adapter

Je reste sceptique sur la nécessité de gérer une foultitude d'onglets et de tableaux : c'est souvent une conception inappropriée mais je ne connais pas ton projet...

Merci pour ton retour,

Oui justement mais comment changer ce nom dans mon code : sachant que je dois désigner d'abord à quel tableau je désire changer de nom.

A noter encore une fois que le nom du tableau que je dois désigner, je ne le connais simplement pas. Vu que ce nouveau nom résulte d'une copie.

Bonjour

Si ton tableau initial a été nommé Cdes_jan il suffit de faire une boucler sur les listobjects du nouvel onglet et vérifier si le nom commence par Cdes_jan pour identifier la copie

J'ai essayé ce code, sauf que je beugue sur la ligne avec le "Active.Name"

Sub LoopThroughAllTablesWorksheet()

Dim ws As Worksheet
Dim tbl As ListObject
Dim Incrementation As Integer
Dim NomTableau As String

Feuil3.Activate
Set ws = ActiveSheet

NomTableau = _
Incrementation = 1

    For Each tbl In ws.ListObjects

         ListObject.Active.Name = NomTableau & Incrementation 

         Incrementation = Incrementation + 1

    Next tbl

End Sub

RE

Décidément tu n'es pas décidé à utiliser les bonnes pratiques : des noms de tableaux _1 à _150 : c'est un classeur inmaintenable

Dans ce cas peu importe le nom du tableau, fait ta boucle et attribue un numéro

Sub LoopThroughAllTablesWorksheet()

Dim ws As Worksheet
Dim tbl As ListObject
Dim Incrementation As Integer

Incrementation = 1
For Each ws In ThisWorkbook.Worksheets
    For Each tbl In ws.ListObjects
        tbl.Name = "_" & Incrementation
        Incrementation = Incrementation + 1
    Next tbl
Next ws

End Sub

RE

Je ne comprends pas ce que tu entends par "bons noms" de tableaux. Donne moi un exemple stp.

A savoir que les désignations "_1" c'est juste un exemple. Je compte les renommer par exemple "YDR1" etc

Je suis novice en VBA

Re

Un tableau, comme un classeur ou un onglet, doit d'autant plus avoir un nom signifiant qu'il n'apparait pas visuellement de façon instantanée

Si on exploite les tableaux ensuite, par TCD, PowerQuery, PowerPivot, VBA... ou même tout simplement pas formule, il est préférable de comprendre ce que l'on manipule grâce au nom des tableaux

Pas sûr que YDR1 à YDRn permette cela...

Rechercher des sujets similaires à "gerer incrementations noms donnes tableaux"