Formules matricielles avec conditions

incubus20851

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Je rencontre un problème avec une formule matricielle avec des SI imbriquées.

Il s'agit d'un fichier où est recensé les ventes, par rapport à deux menu déroulant "Taille" et "Famille".

De la même manière dont je peux faire apparaître toute les familles sur une taille donnée grâce au mot "TOUTES" dans le menu déroulant de B8.
Je souhaiterai pouvoir faire apparaître toute les tailles concernant une famille donnée en mettant "TOUS" dans le menu déroulant B5. Je n'arrive pas à rajouter cette deuxième condition car la formule serait trop longue. Est-ce qu'il y a un moyen pour contourner le problème ? Changement de formule ou autres ?

Voir le fichier en pièce jointe ce sera plus parlant.

Merci d'avance pour vos réponses
 

Pièces jointes

  • TEST.xls
    114.5 KB · Affichages: 52
  • TEST.xls
    114.5 KB · Affichages: 46
  • TEST.xls
    114.5 KB · Affichages: 56

david84

XLDnaute Barbatruc
Re : Formules matricielles avec conditions

Bonjour,
pour les tailles et les libellés tailles : formule matricielle à valider par Ctrl, Maj et entrée :
Code:
=SI($B$5="TOUS";SI(LIGNES($1:1)<=NB.SI(Base!$K$4:$K$10;$B$7&"*");INDEX(Base!H$4:H$10;PETITE.VALEUR(SI(ESTNUM(CHERCHE(Outil!$B$7;Base!$K$4:$K$10));LIGNE(INDIRECT("1:"&LIGNES(Base!I$4:I$10))));LIGNES($1:1)));"");SI(LIGNES($1:1)<=NB.SI(Base!$I$4:$I$10;Outil!$B$4);INDEX(Base!H$4:H$10;PETITE.VALEUR(SI(Base!$I$4:$I$10=Outil!$B$4;LIGNE(INDIRECT("1:"&LIGNES(Base!$I$4:$I$10))));LIGNES($1:1)));""))
A adapter pour les autres colonnes.
Soit dit en passant, le plus simple est de ranger les colonnes de ta BD (onglet Base) dans le même ordre que celles de l'onglet Outil, ce qui te permettrait de tirer une formule unique vers le bas et la droite.
A+
 

incubus20851

XLDnaute Occasionnel
Re : Formules matricielles avec conditions

Merci beaucoup pour ta réponse et ton conseil, cela marche nickel pour les "tailles" mais j'ai l'impression que la formule ne prévoit pas quand B8="TOUTES" pour également afficher toutes les "familles".

Comment est-il possible de modifier cela ?

Merci !!
 

david84

XLDnaute Barbatruc
Re : Formules matricielles avec conditions

Re
1) ta BD comporte trop peu d'éléments pour pouvoir tester tous les cas de figure.
2) pour pouvoir te répondre il faudrait connaître l'ordre de priorité de tous ces cas de figure (taille "tous"-famille "toutes"; taille "tous"-famille "xxx"; taille "xxx"-famille"toutes";taille"xxx"-famille"xxx") : dans quel ordre de priorité ? Manque-t-il des cas de figure ?
3) Esaie également de comprendre la formule, ce qui te permettra d'adapter celle que je t'ai proposée en rajoutant le cas non traité dans l'ordre de priorité que tu veux.
A+
 

incubus20851

XLDnaute Occasionnel
Re : Formules matricielles avec conditions

Ok Merci pour ta réponse BrunoM45, ça marche nickel et ça a le mérite d'être plus rapide et léger que les formules matricielles.

J'ai bien réussi à l'adapter jusqu'ici à mon fichier final, par contre en cellule B4 j'ai voulu changer <Toutes> en <Tous>, j'ai changé le nom dans l'onglet Params ainsi que dans la macro qui faisait références à <Toutes> et la macro n'agit plus sur le champ B4, je pense que le problème doit se situer dans la définition du nom car pour le nom "Critères" tu as "fais références à =Outil!$C$3" mais en regard du nom "Critères" plus loin y'a écrit "Outil" comment tu as fait figurer cela ? Car c'est la seule différence que je remarque entre ton fichier et le mien.

Si tu peux m'éclairer ?

Merci David84 pour le temps que tu as passé, il est vrai que c'est pas évident surtout quand je dois adapter le fichier pour pas laisser d'infos sensibles...
 

incubus20851

XLDnaute Occasionnel
Re : Formules matricielles avec conditions

BrunoM45 oublie mon précédent message, j'ai compris ce qui n'allait pas, j'avais pas réaffectées les macros au bouton du coup j'avais beau modifier la macro il les prenaient toujours de ton fichier.

J'ai néanmoins une petite question, avant j'avais 9 colonnes, maintenant j'en ai 13, j'ai réussi à remplir la table de correspondance pour avoir mes nouvelles données tout fonctionne bien, le seul hic c'est que du coup il ne fait pas le "clear contents" sur les 4 nouvelles colonnes, comment est-ce que ça se paramètre ?

Merci beaucoup pour ta réponse :)
 
C

Compte Supprimé 979

Guest
Re : Formules matricielles avec conditions

Re,

Il faut modifier la 2ème ligne de ce code
' Effacer le tableau de la feuille Outil
Dlig = ShtO.Range("A" & Rows.Count).End(xlUp).Row
If Dlig >= 10 Then ShtO.Range("A10:I" & Dlig).ClearContents

Ce code efface jusqu'à la colonne "I"

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 308
Messages
2 087 104
Membres
103 469
dernier inscrit
Thibz