[RESOLU]Création Tableau Croisé dynamique

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

Zohnya

XLDnaute Nouveau
Bonjour, je réalise actuellement une macro dans le cadre de mon travail. J'ai une feuille qui contient les données relatives a une machine (l'utilisateur, les temps d'utilisations, etc.). Il est possible d'entrer une plage de date afin de filtrer les informations.

Mon but est de récupérer cette plage afin de pouvoir créer un tableau croisé dynamique (TCD). Voici mon code :

VB:
'Selectionner la plage
'Selection de la feuille
Sheets(prefixe & MachinesPlages(i, 1)).Select

'On calcule le nombre de colonne
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
larg = Selection.Count

'Le nombre de lignes dans la plage (pas vraiment utile pour l'instant
Range("A" & DebutPlage & ":A" & FinPlage).Select
longueur = Selection.Count


'Créer le TCD correspondant à la machine
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ActiveWorkbook.Sheets(prefixe & MachinesPlages(i, 1)).Range(Cells(DebutPlage, 1), Cells(FinPlage, larg)), Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:="Options avec filtre!R1C1:R1C" & (i + 5), TableName:="TCD" & MachinesPlages(i, 1), _
DefaultVersion:=xlPivotTableVersion15

Le problème, c'est que quand je lance la macro ça plante au moment de la création du TCD :
err5.PNG


sauf que je ne comprends pas ce que je dois modifier.

Pourriez-vous m'éclairer ?
 
Ce sont des variables globales. Elles sont définies dans une autre fonction. debutPlage et finPlage représentent respectivement le numéro de ligne ou commence et fini la plage que l'on désire traiter. (ça, ça fonctionne. j'ai déjà controlé)
 
Bonjour,
J'ai modifié la création du TCD de cette façon. ça ne marche toujours pas mais au moins l'erreur a changé
VB:
ActiveWorkbook.Sheets(prefixe & MachinesPlages(i, 1)).Range(Cells(DebutPlage, 1), Cells(FinPlage, larg)).Name = "PlageFiltree"

    'Range("R1C1:R"&DebutPlage&"C1:R"&FinPlage&"C"&larg) = "PlageFitree"
   
   
    'Créer le TCD correspondant à la machine
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "PlageFiltree", Version:=xlPivotTableVersion15).CreatePivotTable _
    TableDestination:="Options avec filtre!R1C1:R1C" & colTCDO, TableName:="TCD" & MachinesPlages(i, 1), _
    DefaultVersion:=xlPivotTableVersion15

 
Nouvelle modification, nouvelle erreur. Pour paraphraser Leeloo dans le 5eme élément : "Please Help !"

VB:
ActiveWorkbook.Sheets(prefixe & MachinesPlages(i, 1)).Range(Cells(DebutPlage, 1), Cells(FinPlage, larg)).Name = "PlageFiltree"

   
   
    'Créer le TCD correspondant à la machine
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    "PlageFiltree", Version:=xlPivotTableVersion15).CreatePivotTable _
    TableDestination:=ActiveWorkbook.Sheets("Options avec filtre").Range("A1"), TableName:="TCD" & MachinesPlages(i, 1), _
    DefaultVersion:=xlPivotTableVersion15

 
AAAAH. Donc on peut pas prendre le milieu d'un tableau pour faire un TCD ? T'es obligé d'avoir les entêtes avec ? oooooh.

*alleluia*
Donc techniquement, si je copie colle les entêtes et les données qui m'intéressent dans une autre feuille et que je fais le TCD a partir de ça, ça devrait marcher ?

Donc. A la main, ça marche. j'vais voir si j'arrive a le refaire en code.
 
- 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
1
Affichages
682
Réponses
69
Affichages
9 K
Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Réponses
4
Affichages
1 K
Retour