Fonction indirect et listes dynamiques

Traouck

XLDnaute Junior
Bonjour,
j'essai de faire des listes de validation ainsi que des sous listes de validation.
Cela ne pose pas de problème en téhorie avec la fonction INDIRECT. Sauf que quand la liste est une liste dynamique, impossible de faire fonctionner cette fonction.
Quelqu'un aurait il une parade à ça?

Je mets le fichier en pièce jointe pour que ce soit plus claire.
 

Pièces jointes

  • gestion.xls
    15.5 KB · Affichages: 90
  • gestion.xls
    15.5 KB · Affichages: 91
  • gestion.xls
    15.5 KB · Affichages: 93

Monique

Nous a quitté
Repose en paix
Re : Fonction indirect et listes dynamiques

Bonjour,

En nommant plus long que nécessaire la plage "Fournisseurs", D2:D100 par exemple
Dans la liste de validation, tu tapes :
=DECALER(Fournisseurs;;;NBVAL(Fournisseurs))
et tu obtiens une liste sans blanc

Sauf que je n'ai pas compris quoi dépend de quoi.
 

Traouck

XLDnaute Junior
Re : Fonction indirect et listes dynamiques

Bonjour,

J'ai completer le tableau avec des couleurs pour que ce soit peut etre un peu plus claire.
En fait il s'agit de comptabilité.
Je choisi d'abord une catégorie, puis ensuite avec la fonction indirect, cela me permet de choisir dans une liste de fournisseur de cette catégorie. Et ensuite, via une combinaison d'indirect et de index equiv, j'arrive a faire apparraitre à quoi cela correspond. Par exemple, si je choisi frais gérénraux dans un cellule, je peux choisir France télécom dans la seconde, puis Téléphone dans la troisième.
Tout cela marche très quand je nome une liste "fixe".
Sauf que je suis souvent obliger de rajouter des fournisseurs et pour voir apparaitre les derniers rajoutés, je nome une liste "dynamique" à l'aide de la fonction décaler.
Le problème est que quand je fais une liste de validation sur une liste "dynamique", j'ai un message d'erreur et impossible de faire apparaitre ma liste de validation dans la cellule.
Chose qui ne se produit pas avec des listes fixes.
Revoici le fichier un peu plus complet.
 

Pièces jointes

  • gestion.xls
    17.5 KB · Affichages: 120
  • gestion.xls
    17.5 KB · Affichages: 118
  • gestion.xls
    17.5 KB · Affichages: 121

Gorfael

XLDnaute Barbatruc
Re : Fonction indirect et listes dynamiques

Monique à dit:
Bonjour,

En nommant plus long que nécessaire la plage "Fournisseurs", D2100 par exemple
Dans la liste de validation, tu tapes :
=DECALER(Fournisseurs;;;NBVAL(Fournisseurs))
et tu obtiens une liste sans blanc

Sauf que je n'ai pas compris quoi dépend de quoi.
Salut à tous
Si j'ai bien saisis le problème :
le nom de la liste de validation pour C2, dépend du choix de la cellule B2
source : = liste dont le nom est en B2

Je poste parce que je cherche aussi, mais, les palliatifs que j'ai trouvé ne sont pas probant. Mais je piquerais la première réponse qui me conviendra :p

A+
NB en pièce jointe, une idée de ce que j'appelle un palliatif :D
 

Pièces jointes

  • gestion Mod.xls
    20.5 KB · Affichages: 106
Dernière édition:

Traouck

XLDnaute Junior
Re : Fonction indirect et listes dynamiques

Tu as bien compris.
Si tu as une liste fixe, aucun problème, il suffit d'aller en c2 d'aller dans données, validation, liste et de taper la formule =(indirect(le nom de la cellule en b2). Par contre, il faut que ce nom corresponde au nom d'une liste que tu auras créé précédemment. Si tu veux, j'ai un fichier tout simple pour l'exemple.
 

Monique

Nous a quitté
Repose en paix
Re : Fonction indirect et listes dynamiques

Re,

Avec Decaler() et sans Indirect()
Sans la plage "SsCat"

Il y a peu de plages nommées, on décale toujours la même,
plus ou moins vers la droite.

La formule Decaler() est expliquée dans le fichier (j'espère)
 

Pièces jointes

  • ListesTraouck.zip
    5 KB · Affichages: 90
  • ListesTraouck.zip
    5 KB · Affichages: 86
  • ListesTraouck.zip
    5 KB · Affichages: 96

Gorfael

XLDnaute Barbatruc
Re : Fonction indirect et listes dynamiques

Monique à dit:
Re,

Avec Decaler() et sans Indirect()
Sans la plage "SsCat"

Il y a peu de plages nommées, on décale toujours la même,
plus ou moins vers la droite.

La formule Decaler() est expliquée dans le fichier (j'espère)
Salut à tous
Salut Monique
Je sais déjà faire ça : tu utilises la fonction DECALER en direct pour redéfinir la plage de la liste, sans tenir compte des listes nommées.
Mais je suis persuadé qu'il existe une astuce pour mettre le nom de la liste en variable, donc, je cherche.
Je peux le faire par macro avec une redéfinition de la formule de validation, mais ce que je voudrais réellement, c'est rester dans le domaine des formules.
A+
 

Monique

Nous a quitté
Repose en paix
Re : Fonction indirect et listes dynamiques

Bonjour,

Avec Indirect() dans Decaler() pour la formule de la liste de validation,
les plages nommées de façon "large" et non de façon dynamique
=DECALER(INDIRECT(B2);;;NBVAL(INDIRECT(B2)))

Pour la sous-catégorie,
si le nom est le même que celui de la catégorie avec &"Sc" au bout :
=DECALER(INDIRECT(B2&"Sc");;;NBVAL(INDIRECT(B2&"Sc")))

sinon (si le nom de la sous-catégorie est quelquonque) :
=DECALER(INDIRECT(INDEX(SsCat;EQUIV(B14;Catégorie;0)));;;NBVAL(INDIRECT(INDEX(SsCat;EQUIV(B14;Catégorie;0)))))

Mais ce système suppose de nommer toutes les plages
et non plus seulement la 1ère colonne à gauche et la 1ère ligne en haut.
(la formule de mon message de 16:25 hier, avec Indirect() en plus)
 

Pièces jointes

  • ListesTraouckV1.zip
    5.4 KB · Affichages: 92
  • ListesTraouckV1.zip
    5.4 KB · Affichages: 85
  • ListesTraouckV1.zip
    5.4 KB · Affichages: 82

Discussions similaires

Réponses
4
Affichages
297

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87