recherche une fonction du type "BDNB" mais adapté à ma situation

chroberto

XLDnaute Nouveau
bonjour le FORUM

voici mon souhait. Je recherche une fonction qui me permetterais dans un tableau de suivi de visualiser la quantité de matériel pour chaque codes clients en fonction du type de matos.
je vous joins le pti fichier qui je l'espère vous permettras de comprendre ma requête.
En somme, c'est une fonction du style BDNB mais avec une zone de critère qui pourrais être cindée en 2 (le critère 1: entête de colonne fixe avec pour critère 2 :tous les codes en colonne A glissant).
Merci de votre coup de pouce.
PS:en dernier ressort j'ai regardé des fonctions personnalisées, sur le forum, en VBA mais je ne pourrais pas arriver seul à les mettre à ma sauce
 

Pièces jointes

  • exemple_fichier.zip
    40.4 KB · Affichages: 47

chroberto

XLDnaute Nouveau
Re : recherche une fonction du type "BDNB" mais adapté à ma situation

Salut tototiti2008,
Tout d'abord merci pour ta réponse.
Cependant je ne maitrise pas trop la Fct SOMMEPROD(), mais ça ne m'empêche pas de creuser sur cette fonction... j'y vais de ce pas.

Je joins un exemple de mon fichier sans Zip, comme ça tu pourras voir de quoi il ressort...et approfondir ta 1ère réponse :).
 

Pièces jointes

  • exemple_fichier_bis.xls
    38 KB · Affichages: 67

Jocelyn

XLDnaute Barbatruc
Re : recherche une fonction du type "BDNB" mais adapté à ma situation

Bonjour le Forum,
Bonjour chroberto, tototiti2008,

revoila le fichier en essai avec une formule SOMMEPROD () le plus compliqué a été de reconstruire dans la formule les codes utilisés en feuille AD,

autrement je ne sais pas du tout comment différencier les colonnes qui contiennent ;

C3:1 lance, simple face3 m3/h
D3:1 lance, simple face 5 m3/h
E3:1 lance, simple face 8 m3/h
F3:1 lance, simple face 10 m3/h

je n'ais donc installé les formules que dans les colonnes C et G à M

rien dans les colonnes D, E, F

regardes et dis nous

Jocelyn
 

Pièces jointes

  • chroberto.zip
    48.8 KB · Affichages: 49

chroberto

XLDnaute Nouveau
Re : recherche une fonction du type "BDNB" mais adapté à ma situation

merci Jocelyn pour ta touche perso à ma recherche de formule...
ca fonctionne nickel !!!
pour ma part j'ai simplifier ta méthode:
comme tu l'as vu le plus difficile était de reconstruire le "nom" des codes dans la formule. pour simplifier cette tâche j'ai tout bêtement inséré une ligne en entête de colonne, qui comporte le code respectif de chaque colonne.
Ainsi la formule SOMMEPROD() figera cette case de code.
De plus j'ai mis en (insertion/nom...) une plage de donnée dynamique pour nommer ma matrice de recherche, afin que lors d'ajout de matériel au courant de l'année, je ne sois pas obliger de modifier la formule. la matrice dynamique s'allongera ou se diminuera d'autant. =DECALER(x;1;1;NBVAL(A:A)-1;1).
merci pour ton aide précieuse.
sans trop t'en demander, pourrais-tu m'expliquer la formule que tu as utilisée pour reconstruire le code, car elle est très complexe mais bougrement précise et efficace.
formule:
Code:
SOMMEPROD((AD!$C$2:$C$710="Ad 1"&" produit-"&GAUCHE(C$3)
&STXT(C$3;3;1)&"-"&STXT(C$3;CHERCHE(",";C$3)+2;1)
&STXT(SUBSTITUE(C$3;" ";"µ";3);CHERCHE("µ";SUBSTITUE(C$3;" ";"µ";3);1)
+1;1))*(AD!$A$2:$A$710=$A4)*1)
merci encore
 

Jocelyn

XLDnaute Barbatruc
Re : recherche une fonction du type "BDNB" mais adapté à ma situation

re,

Alors si l'on prend la valeur de C3 soit : 1 lance, simple face3 m3/h
qui doit donner le code : AD 1 produit-1L-SF

la formule permettant de le retrouver est :

"Ad 1"&" produit-"&GAUCHE(C$3)
&STXT(C$3;3;1)&"-"&STXT(C$3;CHERCHE(",";C$3)+2;1)
&STXT(SUBSTITUE(C$3;" ";"µ";3);CHERCHE("µ";SUBSTITUE(C$3;" ";"µ";3);1)
+1;1)c'est une concaténation par le signe &

ou l'on commence par écrire "AD 1" aprés on écrit " Produit-" ensuite on va cherche le premièr caractere a gauche dans la cellule C3 GAUCHE(C$3) ensuite on a besoin du L de Lance 3° caractère de la cellule STXT(C$3;3;1)
ensuite on ecrit le "-" ensuite on veut le S de simple pour cela on recherche a quelle place est la seule virgule du texte par CHERCHE(",";C$3) et oàn ajoute 2 1 pour l'espace qui suit et un pour tomber sur le S c'est complété par la fonction STXT ce qui donne STXT(C$3;CHERCHE(",";C$3)+2;1) (on veut un texte de la cellule C3 qui commence au numéro renvoyé par cherche()+2 et sur un seul caractère) il reste a prendre la première lettre du mot qui suit c'est découper en plusieurs étape pour commencer on modifie les texte SUBSTITUE(C$3;" ";"µ";3) ici on remplace le 3° espace par µ un caractère que l'on a trés peut de chance de trouver dans le texte d'origine ensuite par CHERCHE("µ";SUBSTITUE(C$3;" ";"µ";3);1) on détermine sa position dans le texte a laquelle on va ajouter 1 pour tomber sur la premiere lettre du mot qui suit il ne reste plus qu'a recommencer avec la fonction STXT() comme cela STXT(SUBSTITUE(C$3;" ";"µ";3);CHERCHE("µ";SUBSTITUE(C$3;" ";"µ";3);1)+1;1)

bon j'espère avoir été clair si ce n'est pas le cas n'hésite pas

Jocelyn
 

chroberto

XLDnaute Nouveau
Re : recherche une fonction du type "BDNB" mais adapté à ma situation

merci, j'ai réussit à tout comprendre...non, sans déconner!

Sinon, je viens de me rendre compte que pour mon fichier, la nombre de case avec une formule SOMMEPROD() est tellement important que ça allourdit carrément mon fichier...et le ralentit d'autant!!!

en effet:
5-6 onglets de 14 cases en Ligne x 211 cases en colonne
soit (14 x 211)=2954 que x par 5 ou 6
c'est ce que je disais, ça fait trop...​
Puis-je faire quelques choses pour alléger le fichier, diminuer le temps de calcul tout en concervant la même qualité de travail?
je suis ouvert à toutes propositions...
 

Jocelyn

XLDnaute Barbatruc
Re : recherche une fonction du type "BDNB" mais adapté à ma situation

re,

Effectivement SOMMEPROD étant une formule matricielle elle est trés lourde tu peux essayé de la nommée insertion => nom => Definir on donne un nom a la formule et en bas on met la formule cela devrait alléger un peu

et si ce n'est pas suffisant il reste le passage par VBA mais la je passe la main, je suis une bille a ce leu la

Jocelyn
 

Discussions similaires

Statistiques des forums

Discussions
312 503
Messages
2 089 055
Membres
104 013
dernier inscrit
VELONDAHY Mickaël