XL 2016 VBA Boucle if avec plusieurs conditions

Vero2782

XLDnaute Nouveau
Bonjour,
Je me débrouille en macro VBA mais celle-ci sera la plus complexe que j'aurai fait. J'ai besoin d'aide pour m'aider à établir l'ordre des fonctions que j'ai besoin avant de commencer à programmer. Je sais ce que je veux faire mais je n'ai pas d'idée sur comment y arriver.

J'ai un fichier comprenant plusieurs commandes. Chaque commande inclut plusieurs produits. (une ligne par produit commandé) (voir fichier ci-joint)

Voici ce que je veux comme résultat final : Je veux appliquer un rabais sur certain produits si le client en commande 2 ou plus sur une même commande.

Voici comment je vois mes étapes:
1- Comment demander à VBA de trouver toutes les lignes d'une même commande.

2- Dans ces lignes, que VBA fasse la somme des quantités (col G) Seulement pour les produits (ColF) listés dans la Table Rabais (T_Rabais, Onglet "Table", Colone B ) Si la somme est = ou > 2 , then....

3- Appliquer le rabais de 15$ par produit. (si le client a commander 1 produit: pas de rabais, si le client à commandé 2 unité du même produit : 30$ de rabais, si le client à commander 1 unités de chaque produit (total 2 unités) : 30$ de rabais, si le client à commander un total de 3 unités (ou plus) : 45$ (ou plus) de rabais...) Par contre dans la commande, je voudrais que ce soit le "Prix escompté" qui s'affiche dans la colone (J) et ce prix escompté est différent selon le "type" de client.

4- Passer à la prochaine commande

Pouvez-vous m'aider ?

Merci
 

Pièces jointes

  • Commande fictive.xlsx
    16.2 KB · Affichages: 54

Calvus

XLDnaute Barbatruc
Bonjour,

Voici une proposition en retour, si j'ai bien compris la demande.
Les opérations et résultats s'affichent dans la feuille Result.
Il suffit d'entrer le numéro de commande en cellule J2 et appuyer sur le bouton Lancer.

A+
 

Pièces jointes

  • Commande fictive Vero2782.xlsm
    27.7 KB · Affichages: 68

Vero2782

XLDnaute Nouveau
Bonjour Calvus,

Tout d'abord : un vraiment G-R-O-S Merci ! J'ai travailler sur cette macro plusieurs heures (pour ne pas dire 2 jours) pour me retrouver toujours au point de départ. Merci beaucoup !

Elle fonctionne super ta macro et elle donne exactement le résultat que je voulais. Par contre, idéalement, je ne voudrais pas entrer le numéro de commande à la main et lancer la macro à chaque commande. J'aurais aimé lancer la macro qu'une fois et qu'elle fasse les commandes l'une après l'autre. Il faudrait alors que la variable numcomm varie selon une boucle ... exemple... if le no de commande <> le no de commande+1 , then : je nomme la variable et commence ta macro, if not : next cell. (je vais travailler un peu sur ma formulation VBA... ;) ) mais je pense que ça pourrait fonctionner.

Peux-tu aussi m'expliquer un peu de ce font les UBound? Sinon, je chercherai, tu as déjà fait beaucoup.

Merci :)
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Bonjour Vero2782, le forum,

Je t'en prie. :)

Voici ton fichier en retour.
Il ne me reste que le problème des sommes de commandes à gérer. Je verrai ça demain.

Lbound et Ubound sont des bornes de tableaux, valeurs minimales et maximales. Regarde l'aide pour ça ainsi que sur le forum.

A bientôt.
 

Pièces jointes

  • Commande fictive Vero2782 V2.xlsm
    29.9 KB · Affichages: 53

Discussions similaires

Réponses
0
Affichages
224

Statistiques des forums

Discussions
315 127
Messages
2 116 505
Membres
112 765
dernier inscrit
SIDIANW