Liste de valeurs à partir de données d'un classeur fermé

Exender

XLDnaute Nouveau
Bonjour,

Je souhaite créer une liste de valeurs dans un classeur à partir de données stockées dans un classeur qui est fermé.

Voici ma situation actuelle, où ce que je vais vous décrire fonctionne lorsque mes deux classeurs sont ouverts:

1) Ma cellule C2 contient une liste de valeurs dont les données sont stockées sur une autre feuille du même classeur.

2) Ma cellule D2 contient une liste de valeur qui dépend de la valeur choisie dans la liste C2. Je prends un exemple pour illustrer cela: Si en C2 je choisis "Fruit", j'aurai accès en D2 à une liste comprenant des noms de fruits. Si je choisis en C2 "Légume", j'aurai en D2 une liste de légumes.

3) Les listes de valeurs de la cellule D2 sont stockées sur un autre classeur appelé "Origine.xlsx". Le nom de chaque choix de la liste C2 est reporté sur une feuille du classeur Origine et les données de la liste D2 figurent dans ces feuilles. Je reprends mon exemple pour illustrer cela: Sur mon classeur Origine, une première feuille sera nommée Fruit dans laquelle figureront tous les noms de fruits sur la colonne A. Une deuxième feuille s'appellera Légume avec tous les noms de légume dans la colonne A.


Pour faire fonctionner tout ça j'utilise dans "Validation des données" la formule suivante:
=INDIRECT("["&$H$1&"]"& C2 & "!$A$2:$A$14")

où:
La cellule H1 porte le nom de mon classeur externe (Origine.xlsx)
La cellule C2 correspond au choix de la liste C2
"!$A$2:$A$14" correspond aux données stockées sur le classeur Origine.

Ma question est donc la suivante: comment faire pour que cela marche sans ouvrir mon classeur de données ?
J'espère avoir été clair dans mon explication.

Merci d'avance de vos réponses.
 

Nairolf

XLDnaute Accro
Re : Liste de valeurs à partir de données d'un classeur fermé

Salut Exender, salut le forum,

Sache que la fonction INDIRECT() est une des fonctions ne fonctionnant pas entre deux classeurs différent si la source n'est pas ouverte.

Une solution peut être de faire une bête copie de tes données dans le classeur utilisant les données, ne pas oublier de lier les cellules avec ton classeur d'origine (pour avoir des formules liées et non les valeurs).

Une autre solution est d'effectuer une recherche avec RECHERCHEV(), INDEX(EQUIV())..., mais comme tu utilise la fonction INDIRECT(), j'imagine que tu as plusieurs classeurs et onglets en plages d'origine, ce qui ne simplifie pas les choses.
 

Exender

XLDnaute Nouveau
Re : Liste de valeurs à partir de données d'un classeur fermé

Merci de ta réponse rapide Nairolf. Au moins je suis fixé concernant INDIRECT.

Ce que j'ai fais du coup pour arriver à mes fins, c'est que j'ai créé une feuille dans le premier classeur, avec une formule qui va copier les données du classeur fermé. Ma fonction indirect pointe maintenant uniquement sur la case C2, ce qui va chercher les données de la nouvelle feuille. Et pour cacher les données apparaissant sur la nouvelle feuille du premier classeur je la verrouille et je la masque.

C'est une solution à moitié satisfaisante car mon objectif est le suivant:
Le premier classeur est dupliqué en n exemplaires. Des utilisateurs travailleront dans ces classeurs. Ils ne doivent pas avoir accès aux données.
Le classeur Origine peut être modifié, ce qui entraînera des mises à jours dans les n classeurs utilisant les données.

Ceci dit je vais voir si je peux arriver à ce que je veux avec RECHERCHEV(), INDEX(EQUIV())
 
Dernière édition:

Regueiro

XLDnaute Impliqué
Re : Liste de valeurs à partir de données d'un classeur fermé

Re.
Un exemple ci-dessous, voir PJ.
Si tu enregistres les 2 fichiers dans le même répertoire.
tu actives dans le VBA

'répertoire = ThisWorkbook.Path & "\"
Si tu mets le fichier article.xls dans un autre répertoire
tu actives toujours dans le VBA

répertoire = "C:\Documents and Settings\Bureau\Base données\"
Tu adaptes le chemin en conséquence.
ton fichier de travail -> DVFactureADO.xls"

A+
 

Pièces jointes

  • Article.xls
    17 KB · Affichages: 55
  • Article.xls
    17 KB · Affichages: 54
  • Article.xls
    17 KB · Affichages: 58
  • DVFactureADO.xls
    52 KB · Affichages: 57

Discussions similaires