Question sur la fonction "decaler()" entre différents classeurs

mamyfik

XLDnaute Nouveau
Bonjour à tous!

Après diverses recherches insatisfaisante sur internet, j'ai décidé de vous poser directement la question et peut-être être enfin satisfait :p.

Alors voilà :

J'ai un tableau de client dans un classeur excel avec diverses informations. Je voudrais faire apparaître dans une cellule d'un autre classeur la liste des noms des clients. Cependant, le premier classeur, avec le tableau de client, DOIT rester fermé.
Je définis actuellement un Nom avec la fonction "decaler()", que je rappelle dans la liste de "Validation des données" :

Référence du nom "Bd_Nom" : =DECALER(BDD_Clients.xlsm!Tab_Bd_Client[[#En-têtes];[Nom Client]];1;0;NBVAL([BDD_Clients.xlsm]BDD_Clients!$B:$B)-1;1)

Dans validation des données : Source de la liste : =Bd_Nom

Le problème c'est la fonction decaler()! Elle fonctionne quand le classeur source est ouvert mais pas quand il est fermé comme vous le savez surement.

Ma question : existe-t-il un moyen de contourner ce problème? Ou existe-t-il une autre fonction qui renvoie une plage de cellules et qui fonctionne même avec des classeurs fermés?

Il y a beaucoup de questions sur la fonction decaler() sur internet, seulement, aucune ne correspond vraiment à mon problème. Si toutefois il vous semble que la question a déjà été posé, veuillez m'excuser.
Sinon, merci pour vos réponses!

Cordialement.
 

chris

XLDnaute Barbatruc
Re : Question sur la fonction "decaler()" entre différents classeurs

Bonjour

A priori tu n'en as pas besoin : en utilisant un tableau, tu as automatiquement le bon nombre de lignes.

Il faut

  • créer ton tableau (a priori c'est bon : tu l'as appelé Tab_Bd_Client)
  • sélectionner la colonne B du tableau en cliquant entre le B et le titre de la colonne (cela prend les données sans le titre) et tu nommes cette plage : ce qui donnera une plage portant le nom du tableau et le nom de la colonne et non une référence Excel classique)
  • te référer à ce nom pour ta liste déroulante qui s'allongera automatiquement au fur et à mesure des nouvelles entrées dans le tableau source.
C'est un des gros avantages des tableaux dans 2007 et 2010 : on gagne une approche type base de données et on élimine une partie des formules DECALER
 

mamyfik

XLDnaute Nouveau
Re : Question sur la fonction "decaler()" entre différents classeurs

Bonjour Chris.

Ta technique est effectivement beaucoup plus simple pour nommer les cellules d'une colonne d'un tableau et fonctionne bien! Merci^^
Cependant, mon problème reste le même, car cette liste de noms, je voudrais pouvoir l'utiliser dans un autre fichier excel, en sachant que le fichier qui contient le tableau de noms de client doit rester fermé! Cela ne fonctionne toujours pas, même avec ton système de nommage. Cela me met #REF! dans la valeur du nom.
 

chris

XLDnaute Barbatruc
Re : Question sur la fonction "decaler()" entre différents classeurs

Bonjour

Je n'avais pas testé mais effectivement la référence à un classeur externe ne semble pas marcher dans les validations. J'ai bien le nom défini sans #REF mais si le classeur est fermé la liste ne se déroule pas.

Donc sauf à utiliser VBA pour lire le fichier fermé via DAO ou l'ouvrir sans l'afficher, je ne pense pas qu'il y ait une solution par formule...
 

mamyfik

XLDnaute Nouveau
Re : Question sur la fonction "decaler()" entre différents classeurs

Bonjour.

Je voulais éviter de passer par là, mais en effet çà doit être la seule solution!
Merci beaucoup pour ton aide et pour le temps que t'as accordé à mon problème en tout cas.

++
 

Discussions similaires