Macro ne fonctionne pas

Bonjour à tous,

J'ai passé quelques heures de tests avant de faire appel à vous.

Je dois faire un certain nombre d'opérations à partir d'un tableau croisé dynamique.

En effet, une fois que j'ai édité un résultat issu du tableau croisé, j'ai un tableau qui comprend les données regroupées sur lequel je dois :

- trier par prénom ;

- insérer une nouvelle colonne ; et

- coller une formule "si" conditionnelle.

Le premier problème que je rencontre est que je n'arrive pas à faire faire à la macro un simple tri sur le prénom !

J'enregistre la macro sur le tableau 10 par exemple. Quand je l'exécute sur un nouveau tableau (qui a les mêmes colonnes, mais pas le même numéro de tableau) ça ne marche plus.

Je n'ai pas encore testé le reste, mais j'y vais par étapes.

Si vous avez quelques conseils, c'est volontiers.

Merci

Hello,

Tu peux commencer par :

Après, ce n'est pas forcément facile de travailler (en vba) sur un tcd ...

Oui en effet. Bon je travaille non pas directement sur le tcd mais sur un tableau que j'obtiens en double-cliquant sur une valeur (en l'occurrence, dans mon tableau c'est "nombre de Nom", j'obtiens le tableau sur lequel je dois faire mes tris et ajouts.

Si j'enregistre la macro en faisant les opérations sur le tableau 10, la marco fonctionne sur le tableau 10. Mais si je crée un tableau 11, la marco ne va pas faire le job.

Le fichier c'est délicat, c'est une base de donnée de mon patron et elle contient plus de 70'000 items.

Hello,

Tu peux lui donner toujours le même nom à ton tcd.

Par contre, pour faire cela il faut que tu sortes la clef à molette, la pince, le chiffon et de l'huile de coude !!!

Tu as ça dans ta boîte à outils ???

Voici un exemple comment appliquer toujours le même nom à un tcd :

Sub TCDANALYSE()
Dim Nom_tcd as string
Nom_tcd  = "Analyse"
ActiveSheet.PivotTables(1).Name = Nom_tcd  
End Sub

Ce code nomme le premier tcd de la feuille active "Analyse" (C'est mieux si tu n'as qu'un tcd dans ta feuille )

Après c'est un piste pour te permettre d'avancer

Merci.

Je ne sais pas si cela a de l'importance, mais je ne travaille pas sur le tcd directement, mais plutôt sur le résultat des croisements que j'ai fait sur un champ "nom".
J'ai donc un tcd avec un regroupement des itemps par noms identiques (voir image).

J'ai édité la marco que j'ai faite :

Sub Macro3()
'
' Macro3 Macro
'

'
    ActiveWorkbook.Worksheets("Feuil6").ListObjects("Tableau13").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Feuil6").ListObjects("Tableau13").Sort.SortFields. _
        Add2 Key:=Range("Tableau13[[#All],[PRÉNOM]]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil6").ListObjects("Tableau13").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Columns("G:G").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
End Sub

Comme il y a des notions de "tableau13" ou "Feuil6", je peux bien imaginer que si j'essaie d'appliquer cette même macro à une feuille qui comporte différentes références, ça n'ira pas.

capture d e cran 2021 06 23 a 19 23 40
Rechercher des sujets similaires à "macro fonctionne pas"