Choix minimal avec conditions
bonjour
j'ai un tableau avec une liste de vendeur et des produits
je doit choisir dans les prix proposés le choix minimal
je me trouve confronter a une difficulté pour le choix le plus adéquat afin de définir la dépense minimal
d'autant plus que j'ai plusieurs tableaux du même type avec d'autres vendeurs et d'autres produits
avec des conditions similaires
le fichier joint comporte d'autres explications
je serai très heureux de votre aide et je vous remercie d'avance
Bonjour,
une proposition qui demande des tests supplémentaires...
la base de données que tu as fournie pour l'exemple est insuffisante pour tester correctement la macro.
Il me faudrait beaucoup plus de produits et et vendeurs (que tu rajouterais sur la feuille"choix et conditions") avec les données remplies de façon aléatoire pour pouvoir simuler au moins quelques autres cas de figure.
PS : pour info, la macro va rechercher, pour chaque vendeur, les produits pour lesquels les prix sont les plus compétitifs; supposons que tu puisses acheter un maximum de 3 produits chez un vendeur mais qu'il soit le mieux placé en termes de prix 7 fois, lors des comparaisons, la macro va choisir les 3 produits ou l'écart de prix avec le vendeur suivant est le plus grand : en gros, s'il y a une différence de prix de 1 € et une autre de 100 € sur le 3e et dernier produit à sélectionner (les 2 1er ayant déjà une différence supérieure à celle du 3e produit à choisir), le programme va choisir le produit où la différence de prix est de 100 €, cela suppose néanmoins que tout ton tableau soit bâti de façon à ce que les unités de mesure de tes produits soient les mêmes... autrement dit, la macro ne fera pas une sélection efficace si tu affectes le prix des canettes de boissons gazeuses à l'unité et parallèlement, et celui de l'eau de vie au tonneau... il sera judicieux d'intégrer les prix de toutes tes boissons au litre, par exemple... (idéalement, tous les prix de tes produits seraient au kg, ou à la tonne ou au litre et n'importe quelle autre unité de mesure commune); j'espère que c'est clair.
bonjour game over
je suis très heureux d'avoir une réponse de votre part je vous remercie de l'effort
il parait que quelques améliorations seront utiles
les prix proposés sont des prix unitaires pour chaque produit
ci-joint d'autres tableaux avec qq remarques
"" je suis nul en VBA ""
Bonjour chamseddine,
le bug du 'max"vendeur3"=1' a été corrigé.
Le prix a été rajouté aux résultats.
Il ne sera possible de traiter qu'un seul tableau à la fois : copier-coller le tableau requis à partir de la cellule A1 de Feuil2 et lancer la macro.
Les résultats sont maintenant affichés dans une nouvelle feuille appelée Resultat.
Je te laisse faire les tests et me rapporter éventuels les bugs.
bonjour game over
j'ai compris la manipulation à faire mais
le résultat ne s’avère pas correcte
en effet j'ai transformer tous les max en 1;1;1;1;1;etc
le programme n'a pas tenue compte de cela
je vous transmet ci-joint le fichier
je vous remercie de votre aide
a+
L'erreur est maintenant corrigée
hello game over
le programme fonctionne convenablement
1000 bravos pour votre aide très appréciable
vu que je suis nul en VBA, est-il possible de m'expliquer encore plus
le déroulement du programme?
avec qq commentaires pour suivre
votre raisonnement et comprendre les séquences .
pour le moment j'utilise la mise en forme conditionnelle pour colorer le resultat
dans le tableau traité
encore un grand merci pour votre patience
a +
Bonjour chamseddine,
voici le principe du programme :
la macro commence d'abord par trier chaque colonne du tableau pour chaque vendeur; si le vendeur en cours de traitement est le premier apparaissant dans le tri, alors la macro enregistre le nom du vendeur, le produit, le prix du produit et la différence de prix avec le vendeur en 2nde position dans un tableau (un tableau est une variable un peu particulière qui enregistre les informations dans la mémoire de l'ordinateur et non un tableau comme celui que tu retrouves sur feuil2).
Pour chaque vendeur, lorsque le traitement de toutes les colonnes a été effectué, si le tableau n'est pas vide alors les éléments du tableau vont être triés de façon décroissante en ce qui concerne la différence de prix avec le second de la liste.
L'étape suivante consiste à afficher les résultats dans la limite du nombre d'entrées autorisées par la colonne max du tableau.
Une fois cette opération effectuée, il se peut que certaines colonnes n'aient pas été traitées, alors va macro va répérer les colonnes qui n'ont pas encore de vendeur et rechercher le premier vendeur disponible (dont le nombre d'affichages dans les résultats est encore inférieur à son max) et compléter la liste de résultats ainsi.
voilà, j'espère que c'est un peu plus clair.
bonjour Game over
merci pour votre aide
je garde un bon souvenir de ce contact
a+