TCD vers autre classeur en utilisant une référence nommée

Bonjour à vous,

Quand je fais un TCD, j'ai l'habitude de ne pas mettre la source de données "en dur" (sous la forme Feuil1!$A$1:$B$4) mais sous la forme d'un NOM (par exemple "=zoneTCD", zoneTCD étant un NOM que je définis dans le gestionnaire de noms comme faisant référence à Feuil1!$A$1:$B$4). C'est très pratique quand par exemple plusieurs TCD d'un même classeur ont des segments partagés (notion de "connexion de filtre" qui permet à partir d'un seul segment d'impacter plusieurs TCD qui sont sur la même source de données), car cela permet de changer rapidement la zone de données sans devoir déconnecter tous les liens entre segments préalablement (on change juste la portée de ZoneTCD et ça roule, par exemple en mettant désormais Feuil1!$A$1:$C$7).

Mon problème du jour est le suivant : mes données sont maintenant dans un autre classeur que le classeur du TCD. Si je mets la source de données en dur, cela marche très bien, mais si j'essaye de définir un NOM (par exemple ZoneTCD qui fait référence à ='[MonClasseurDeDonnees.xlsx]Feuil1'!$A$1:$B$4 ) et que je donne comme source de données à mon TCD "=zoneTCD") j'obtiens un message d'erreur "La référence à la source de données n'est pas valide".

Comment faire ? c'est-à-dire comment avoir la souplesse du nommage de la source de données tout en ayant des données dans un autre classeur ?

Merci à vous !

Phil.

Salut,

Si j'ai bien compris tu peux simplement faire une requête power query dans ton fichier principal en nommant la source comme tu désires?

Bonjour,

Si l'on veut créer un TCD à partir de données d'un autre classeur en passant par un nom , a priori la solution est que

1- les données de l'autre classeur soient dans un tableau structuré qui a par exemple pour nom : tableau1

2- l'insertion du TCD se fasse non à partir d'une plage mais à partir d'une connexion avec pour table : tableau1

Bonjour à tous

Depuis la version 2003, soit plus de 17 ans on utilise un tableau structuré et plus une plage nommée comme source de TCD...

Et avant on utilisait des formules nommées pour avoir une plage dynamique qu'on n'avait pas à modifier (et surtout oublier de modifier )

Depuis la version 2010, on dispose de PowerQuery pour faire un TCD à partir d'un fichier externe

Donc avec 2019 PowerQuery s'impose...

Et je conseille de renommer les tableaux structurés et ne pas garder les noms automatiques : vous nommez bien vos classeurs autrement que Classeur1 et vos onglets autrement que Feuil1, du moins je l'espère...

Bonjour,

Merci beaucoup, à tous les 3, pour vos retours.

@thev : j'ai oublié de préciser que le fichier de données est généré automatiquement, je n'en ai pas la maîtrise (il ne peut donc pas contenir de NOM)

@78Chris et @jbeaudoin : je ne connais pas PowerQuery, mais vos réponses me donnent envie d'aller me renseigner. Je n'ai pas précisé non plus que mon fichier de TCD est partagé avec plusieurs autres utilisateurs et qu'il est assez délicat de leur imposer d'installer un complément Excel (j'ai cru comprendre que c'est le cas avec PowerQuery ?)

Entretemps, j'ai continué à avancer, et je teste une autre solution : comme "source de données", au lieu de choisir "sélectionner un tableau ou une plage" je choisis "Utiliser une source de données externes".

  1. ça crée un "nom de connexion" portant le nom de mon fichier de données (et sans que soient précisées les colonnes ou les lignes de cette connexion, ou alors je cherche mal)
  2. ça crée des fichiers dans un sous-dossier "Mes sources de données" dans "Mes documents" sur le disque dur (je ne sais pas trop à quoi ça sert, ça a l'air de se débrouiller en le recréant quand je l'ai effacé pour tester la robustesse du mécanisme)

Ca a l'air de se rapprocher de la solution PowerQuery ? (qui serait intégré à Excel 2016 en standard)

Bonjour,

Ca a l'air de se rapprocher de la solution PowerQuery ?

C'est la solution Powerquery qui est intégrée en standard depuis la version 2016.

Si vous ne souhaitez qu'un TCD, vous pouvez également utiliser l'option de connexion à un tableau structuré et non à une plage, via le choix présent dans la fenêtre d'insertion.

Bonjour @thev

Ah je faisais donc comme Monsieur Jourdain

(difficile de se comprendre quand l'IHM de Excel ne présente pas la même terminologie, où alors il faut que je passe en langue anglaise ?)

Que voulez-vous dire par

Si vous ne souhaitez qu'un TCD

?

Par ailleurs, j'avoue que je me méfie des tableaux structurés (si c'est bien ce dont on parle quand on clique sur "Mettre sous forme de tableau") car sur des versions anciennes de Excel (2010 de mémoire) j'avais constaté à plusieurs reprises dans des cas différents un écroulement des performances de Excel (des temps de recalculs pas compréhensibles, des tableaux qui s'étendaient sans qu'on comprennent pourquoi à des millions de lignes...). Mais ça s'est peut-être / sans doute amélioré

Bonjour,

Le tableau structuré est par définition borné et ne contient donc que les lignes renseignées (pas de lignes vides). Il se définit par le menu Insertion --> Bouton Tableau. Par ailleurs, PowerQuery ou un TCD avec données issues d'une connexion, ne fonctionnent qu'avec ce type de tableau. Voir le tutoriel :

https://www.excel-pratique.com/fr/astuces/tableau-structure

Si vous ne souhaitez qu'un TCD

L'utilisation de Powerquery va se traduire par la création de requêtes qui au final aboutiront à un nouveau tableau structuré à partir duquel vous élaborerez votre TCD. Si vous n'avez pas besoin de ce tableau intermédiaire, il vous suffit dans la fenêtre d'insertion du TCD, de choisir connexion (et non plage) , votre requête sera élaborée automatiquement et vous pourrez construire votre TCD.

@thev, merci pour ce retour. j'ai la comprenette difficile

L'utilisation de Powerquery va se traduire par la création de requêtes qui au final aboutiront à un nouveau tableau structuré à partir duquel vous élaborerez votre TCD. Si vous n'avez pas besoin de ce tableau intermédiaire, il vous suffit dans la fenêtre d'insertion du TCD, de choisir connexion (et non plage) , votre requête sera élaborée automatiquement et vous pourrez construire votre TCD.

... je ne vois aucune différence apparente dans Excel entre le résultat si je clique sur "plage/ tableau" ou si je clique sur "connexion" (si ce n'est des fichiers qui se créent dans "Mes documents" dans le second cas) => je ne vois pas de nouveau tableau intermédiaire, mais un seul TCD classique.

Bonjour,

Pour un TCD avec données sur un autre classeur , si vous cliquez sur "plage/tableau", vous n'aurez jamais accès à une plage nommée. Si vous cliquez sur connexion, vous aurez accès à la plage nommée du tableau structuré.

Pour utiliser PowerQuery : menu Données --> Obtenir des données à partir d'un tableau ou d'une plage (si la plage n'est pas un tableau structuré, PowerQuery la convertira d'office en tableau structuré)

@thev,

  1. lorsque je décris ma façon de faire : dans la fenêtre de dialogue d'insertion d'un TCD je choisis "Utiliser une source de données externes" (par opposition à l'autre choix "sélectionner un tableau ou une plage"), vous me dites (réponse 9h36) que j'utilise PowerQuery
  2. par ailleurs, vous me dites (dernière réponse) que pour utiliser PowerQuery, je dois faire menu Données --> Obtenir des données à partir d'un tableau ou d'une plage

Dois-je comprendre qu'il s'agit de 2 façons d'utiliser le même outil PowerQuery (sans le savoir, puisqu'Excel ne cite pas l'outil) ?

lorsque je décris ma façon de faire : dans la fenêtre de dialogued'insértion d'un TCD je choisis "Utiliser une source de donnéesexternes" (par opposition à l'autre choix "sélectionner un tableau ouune plage"), vous me dites (réponse 9h36) que j'utilise PowerQuery
J'ai répondu un peu rapidement. En fait, vous utilisez automatiquement l'outil requête inclus avec PowerQuery.
PowerQuery comprend en fait une interface puissante de paramétrage de requêtes vous permettant d'agir sur les colonnes, les formats, les filtres, de créer des regroupements comme un TCD et des jointures entre requêtes

Bonjour à tous

Pour résumer, si le fichier externe est un extrait :

depuis un classeur vierge Excel, Données à partir d'un fichier, A partir d'un classeur puis choisir le fichier puis la feuille

  • Si pas de retraitement des données à faire: Charger Dans, Connexion seulement puis créer le TCD à partir de la requête (données externes)
  • Sinon Transformer les données ce qui ouvre PowerQuery
    On sortira une fois les modifications effectuées par Fermer et Charger Dans, Connexion seulement puis créer le TCD à partir de la requête (données externes)

Merci à vous : il ne reste plus qu'à se mettre à PowerQuery tel que désormais intégré à Excel 2016 :-)

Rechercher des sujets similaires à "tcd classeur utilisant reference nommee"