Somme en fonction de plusieurs critere [Résolu/Fermé]

Signaler
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015
-
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015
-
Bonjour,
J'aimerai faire une somme de poid en fonction de la pièce et du fournisseur , http://cjoint.com/data3/3Ienv1tBoND.htm
en regardant cette exemple on vois qu'il fait la somme pour le 1kg , pc ou L de la pièce par fournisseur , j'aimerai faire la même chose de manière automatisé , on sait pas cb il y a de pièce ou de fournisseur.
Le tableau croisé dynamique le fait sans problème mais je ne peux pas passer par un tableau croisé dynamique car j'ai besoin de la valeur pour faire un ratio directement dans ce tableau pour ensuite faire un graphique

14 réponses

Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Bonjour

A priori, pas besoin de macro
F2=SI(SOMMEPROD(($A$2:$A2=A2)*($B$2:$B2=B2)*($C$2:$C2=C2))>1;"";SOMMEPROD(($A$2:$A$13=A2)*($B$2:$B$13=B2)*($C$2:$C$13=C2)*($D$2:$D$13)))

Si ça ne convient pas et qu'une macro est indispensable, peux tu préciser sous quelle forme tu veux le résultat (au format excel 2003)

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Je voulais faire une macro parce que la plage de donnée n'est pas défini a l'avance elle est variable mais j'ai changé le problème voici le nouveau fichier

https://www.cjoint.com/?0IfpCaYwPvI

Je voulais faire ça ( fin maintenant désolé de changer un peu le truc )
En gros je veux que pour chaque pièce de fournisseur il additionne le poid et qu'il laisse une ligne par fournisseur/piece sans oublié qu'il peut avoir 1 fournisseur comme 10 fournisseur , pareil pour les pieces
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Tu ne dis pas comment sont calculés les prix dans le tableau Résultat
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Ils sont pas calculer , les prix sont donné comme ça par pièces du coup on peut les zapé , pas besoin de les additionner , il reste fixe
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Un début de réponse
J'ai supposé que les références (même_fournisseur - même_pièce) avaient le même prix

https://www.cjoint.com/?3IgnYMvQ01J

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Merci pour cette solution c'est parfait
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

J'essaye de le reprendre pour mon programme mais j'avais jamais fait ce genre de programmation avec objet , j'espère savoir m'en resservir
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Bon j'ai re-adapté ton code a ma base de donnée de 16colonne , enfaite y a un petit problème .
En gros ma base de donnée est composé du nom de la pièce et de tout les petit objet qui la compose ainsi que leur poid mais certain objet n'ont pas de poids comme c'est des litre et que moi j'importe que les KG cependant j'importe tout parce que je n'ai pas besoin que du poid pour mes calcul j'ai besoin des renseignement des 16colonne , du coup j'ai des case vides et j'ai l'impression que a cause des cases vide en poids il me met 0
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Tu peux peut être t'en sortir avec un petit test
Si xx="" alors machin = machin & "" sinon machin = machin & xx

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Je t'avouerai que je sais pas trop comment utiliser ton code , pour le readapter a ma situation j'ai un peu triché , en gros des 16colonne j'en ai recup 4 sur une autre feuille pour ensuite utiliser ton code donc la condition je sais pas ou la mettre
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Envoies quelques lignes de ton fichier (avec les 16 colonnes) et des explications/exemples de ce que tu attends

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

https://www.cjoint.com/?0IiuikKNps6

Dans la Feuil2 , j'importe le fournisseur , le nom de la piece , le prix ainsi que le poid pour ensuite faire le ratio prix/poid , le but c'est comme tu vois dans la Feuil2 , quand le fournisseur + nom pièce est pareil , le prix est forcement pareil mais on vois que le ratio est détraque parce qu'il fait pas l'addition des poids , du coup j'aimerai faire l'addition des poids pour chaque fournisseur/nom pièce avec le même prix , par contre fait pas attention au bouton graphe j'ai pas réussi a le finir pour le moment il bug , il choisis bien le nom des fournisseur mais il arrive pas a trouvé la bonne plage de donnée propre a chaque fournisseur
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Je ne peux pas lire ton fichier il faudrait le mettre au format excel 2003 comme indiqué au post #1

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
certain objet n'ont pas de poids comme c'est des litre et que moi j'importe que les KG cependant j'importe tout parce que je n'ai pas besoin que du poid pour mes calcul j'ai besoin des renseignement des 16 colonne , du coup j'ai des case vides et j'ai l'impression que a cause des cases vide en poids il me met 0
1. dans l'extraction, effectivement la somme des poids est la valeur associée à la clé (fournisseur+piece)
Donc le 0 est normal s'il n'y a pas de poids dans la colonne poids.
c'est au niveau du remplissage du tableau TTFB qu'il faut intervenir
    If valeurs(liFB - 1) = 0 Then
TTFB(liFB, 4) = ""
Else
TTFB(liFB, 4) = valeurs(liFB - 1)
End If
est ce que j'ai bien compris?
2. Ton dernier fichier ne comporte pas d'exemple de ce type

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

1. quand je remplis mon tableau de base ( la base de donnée ) j'importe tout pour pas trop chargé niveau des conditions et que pour si y a une erreur la personne puisse la voir , mon outil sers surtout a voir les erreurs de remplissage des feuilles fournisseur qui viennent alimenter la base de donnée , mais quand j'importe les valeur de la base de donnée a la feuil2 je met une condition pour qu'il importe que les KG du coup y a des poid vide vu que c'est poids sont des pc ou L

2. Oui normal mon fichier ne comporte pas ton exemple parce qu'il est dans la feuil2 normalement et comme je sais pas re utiliser ton code je ne peux pas le faire moi même sinon en gros je prend la feuil2 et ensuite je refais une feuil grâce a ton code mais j'ai pas trop passer par des intermédiaire
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Avec ce que j'ai compris
https://www.cjoint.com/?3IkqmciZwYh

RQ. Pas besoin d'extraire les 4 colonnes, j'ai travaillé directement dur la feuille Liste

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

Coucou , c'est presque ça , juste qu'il faut additionné les poids seulement si unit="Kg" , qu'il soit vide ou pas , juste qu'il fait qu'il soit egale a Kg
Messages postés
9634
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
25 novembre 2020
1 976
Je suppose que tu as modifié le code
au cas où

ajouter à la liste des constantes
Const coUn = "S"
et modifier ici
    cle = .Range(coNP & liFB) & ";" & .Range(coFO & liFB)
If UCase(.Range(coUn & liFB)) = "KG" Then
valeur = .Range(coPO & liFB)
Else
valeur = 0
End If

Cdlmnt
Messages postés
87
Date d'inscription
lundi 21 juillet 2014
Statut
Membre
Dernière intervention
14 octobre 2015

C'est niquel un grand merci a toi ! grâce a toi j'ai presque fini mon programme , je vais tenté de trouver quelqu'un pour finir mon graphique feuil1