Bonjour,

Je souhaite réaliser un tableau Croisé Dynamique à partir d'un tableau source, auquel le nom "DATA" est attribué, dont le nombre de colonnes peut varier selon les cas. J'utilise donc une boucle pour parcourir ces colonnes.

En ligne du tableau croisé, il y a déjà un champ (3ème colonne de DATA, insérée par une précédente macro en tant que ligne tableau croisé).

L'étape suivante (sans succès) consisterait à mettre en colonnes du tableau croisé (sous forme de sommes), les colonnes du tableau DATA (cf. tableau qui a servi à construire ce dernier), la boucle doit aller de la 4ème à la dernière colonne de DATA.

J'ai donc une boucle qui parcourt toutes les colonnes, à chaque itération, j'enregistre sous le nom de "titre_champ" le titre de la colonne dans DATA, et je veux utiliser ce paramètre (chaine de caractères) pour choisir le champ à insérer dans le tableau croisé (ça, ça marche) ET aussi pour que ce soit donc le titre de cette colonne dans le TCD (c'est là que ça ne marche pas).

Voici la partie du code concernée (la boucle a été mise en commentaire pour l'instant):
(la feuille ou il y a le tableau croisé s'appelle "TCD", et letableau croisé dynamique lui même s'appelle "TCD" aussi).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub Remplir_col_TCD()
Dim titre_Champ As String
 
(...)
 
'BOUCLE POUR COMPLETER CHAQUE CHAMP DE DATA DANS LE TCD
 
     Sheets("TCD").Select
 
'For 
     Indice_Champ = 4 'To NbColData
'ENREGISTREMENT DE TITRE_CHAMP (en utilisant la cellule A1)
    Sheets("feuil1").Select
    Range("A1").Value = "=Index(Data, 1," & Indice_Champ & ")"
    titre_Champ = Range("A1").Value
 
'METTRE COLONNE DANS LE TABLEAU CROISE
    Sheets("TCD").Select
 
    ActiveSheet.PivotTables("TCD").AddDataField ActiveSheet.PivotTables("TCD"). _
        PivotFields(titre_Champ), titre_Champ, xlSum
'Next Indice_Champ
 
 
End Sub
L'erreur renvoyée est:
"erreur d'execution 1004:
Erreur définie par l'application ou par l'objet"

Les lignes surlignées par le débogage sont celles là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    ActiveSheet.PivotTables("TCD").AddDataField ActiveSheet.PivotTables("TCD"). _
        PivotFields(titre_Champ), titre_Champ, xlSum
Il y 2 fois "titre_champ" dans ces lignes, mais si je remplace le deuxième par n'importe quoi entre guillemets, ça marche, c'est donc le deuxième qui pose problème:
ex de code qui marche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    ActiveSheet.PivotTables("TCD").AddDataField ActiveSheet.PivotTables("TCD"). _
        PivotFields(titre_Champ), "test", xlSum
mais avec cet exemple, dans la boucle, toutes les colonnes du tableau croisé auraient alors le nom ("test") donc ça ne va pas.

Avez-vous une idée de solution?

Merci d'avance pour votre aide