Je souhaite créer un TCD dans un fichier B à partir de données se trouvant dans un fichier A. Le problème c'est que quand dans la source du tableau ou la destination du tableau je rentre un chemin du style "nomDeFichier/nomDeFeuille/cellule" ça ne fonctionne pas alors qu'un chemin du style "nomDeFeuille/cellule" fonctionne mais du coup je ne peux pas créer le tableau dans un autre fichier ou récupérer des données venant d'un autre fichier.
J'ai vu sur internet quelques solution que je n'ai pas bien compris c'est pour cela que je crée un nouveau post.
Je vois pas où est le problème, lors de l'insertion du TCD, clique sur la petite icône de sélection de plage pour les données à analyser et sélectionne la plage que tu veux dans le fichier que tu veux.
En fait je dois faire une macro et la source / destination sont des variables, en procédant comme tu le dis je fais une macro qui ne fonctionne que pour une plage de donnée, de plus le code générer par la macro enregistré ainsi ne contient pas de source claire,
Crée des objets Workbook qui te serviront à référencer tes plages directement plutôt qu'en passant par une string comme c'est fait là (pour sourcedata et tabledestination).
Super merci j'arrive maintenant à créer les TCD cependant je tombe sur un nouveau problème,
Lors de la création d'un premier TCD tout fonctionne correctement mais lors de la création du 2eme je reçois une erreur d'exécution 1004: "Erreur définie par l'application ou par l'objet"
J'ai en fait 2 "sub" pour créer 2 tableaux différents sur la même feuille. Le vrai problème c'est de créer plus d'un tableau sur la même feuille, si je commence par le 2eme tableau il se crée mais le premier ne se créera pas et si je n'en crée qu'un par feuille alors tout fonctionne sauf qu'il me les faudrait sur la même feuille :/
Sub tcdA() 'Premier TCD
src = "[classeur1.xlsx]Feuil1!A:B" 'Données sources
dest = "[classeur2.xlsm]Feuil1!R2C2"
Workbooks("classeur2.xlsm").PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:=src, Version:= _
xlPivotTableVersion12).CreatePivotTable _
TableDestination:=dest, _
TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion12
End Sub
Sub tcdB() 'Second TCD
src = "[classeur1.xlsx]Feuil1!C:D"
dest = "[classeur2.xlsm]Feuil1!R10C10"
Workbooks("classeur2.xlsm").PivotCaches.Create(SourceType:=xlDatabase, _
SourceData:=src, Version:= _
xlPivotTableVersion12).CreatePivotTable _
TableDestination:=dest, _
TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion12
End Sub
Non le deuxième ne se crée vraiment pas
========================
En fait c'est bon, problème tout bête mais les deux tableaux avaient le même nom :/
- Edité par Emilien W 16 mai 2018 à 10:55:29
Musique .......!
VBA Excel TCD inter fichier
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.