Macro VBA

Je dispose d'un fichier Excel contenant environ 20.000 lignes et il m'est demandé de trouver pour chaque code vendeur trouver un statut pertinent; par exemple comme statut pertinent on a en cours, ensuite en service, puis annulé et enfin clôturé. Ayant deux feuilles dans un même classeur cela me permet d'appliquer après la macro la recherchev.

Ci joint un extrait du tableau, et si vous avez des pistes à me proposer n'hésitez pas. Merci !

Bonjour! en fait je pense à une macro avec case mais je ne sais pas comment l'écrire

par exemple j'ai case 1 "statut en cours"

case 2 "statut en service"

case 3 "statut annulé"

case 4 "statut cloturé"

pour l'initialisation je pensais à mettre code vendeur

Mais après je suis un peu perdue!

Merci d'avance!

Bonjour,

Désolé, mais j'ai peur de ne pas bien avoir cerné le problème.

Afin de mettre un statut, il faut des indicateurs qui permettent de déterminer lequel mettre.

Par exemple, une colonne "Annulé" avec O/N ?

Si la date de livraison est dépassée peut-on considéré l'affaire "clôturé" ? Sinon "En cours" ?

En gros sur quelles données tu te bases pour dire qu'une ligne à tel ou tel statut ?

A plus !

Merci pour ta réponse!

En fait le statut est déjà inscrit pour chaque ligne! juste il faudrait dans une nouvelle colonne dans la feuille base livraison pour chaque vendeur le statut le plus pertinent selon l'ordre que j'ai donné plus haut car on peut avoir pour un même vendeur deux statuts qui sont différents! j'espère t'avoir éclairé!

Ah je vois, un exemple pour voir si j'ai bien compris, dans ton fichier exemple, THOMAS a un statut "Clôturé" et "Annulé". Donc dans la nouvelle colonne, sur les lignes de THOMAS, il y aura que des "Clôturé" vu que c'est le dernier statut ?

Si ce n'est pas ca, il faut m'expliquer comment tu détermines le niveau de pertinence d'un statut

le niveau de pertinence de statut es effectué selon la commande de chaque produit! en fait, cela nous permettrait de savoir si la commande est ben arrivée chez le client pour chaque vendeur! ainsi si la commande est en cours cela nous permettrait d'approfondir notre analyse pour savoir pourquoi la commande est encore en cours!

du coup pour chaque code vendeur on aimerait savoir en premier si la commande est encore en cours, dans le cas contraire voir si la commande est en service, ou annulé ou clôturé!

par exemple; pour thomas j'aimerais avoir en premier annulé et ensuite clôturé.

Merci

le statut annulé est plus pertinent que celui de clôturé! ce qui facilite notre analyse!

statut par ordre de priorité

en cours

en service

annulé

clôturé

voila j'espère avoir éclairé les zones d'ombres!

Bonjour,

j'ai traité un sujet similaire récemment, et sans macro :

https://forum.excel-pratique.com/viewtopic.php?f=2&t=111036&p=661326#p661326

J'ai appliqué la même chose à ton fichier afin d'obtenir le même résultat, le voici :

Voilà une proposition également mais avec macro.

Bien que je pense qu'il soit quand même plus raisonnable d'utiliser la solution de Ausecour !

A plus !

Merci pour ta réponse! elle est intéressante, toutefois, pour un même code commande ayant des statuts différents, ta formule affiche le même statut, pourtant j'aimerais avoir certes le statut le plus pertinent mais que l'autre statut soit écrasé ce qui me permet de garder uniquement pour des mêmes codes commandes une seule ligne de commande ayant un statut pertinent! j'espère que la j'explique bien car moi même je viens de clarifier grâce à ta proposition ce dont j'ai besoin

Merciiiii

salut!

merci pour vos propositions, toutefois cela répond partiellement à mon problème! j'étais pas clair!

En fait, les résultats sont bon mais juste comment je peux écraser le résultat qui ne m'est pas utile! par exemple pour thomas j'ai deux statuts clôturé et annulé, comme le statut que j'aimerais garder est le statut annulé j'aimerais écraser le statut clôturé et ne garder que celui qui est annulé! Aussi pour un même code vendeur il peut arriver que j'ai plusieurs ligne avec le même statut annulé du coup je veux garder toutes ces lignes avec leur statut annulé! sur mon fichier en pièce jointe j'ai rajouté une ligne!

merci de votre aide qui est déjà jusqu'ici très intéressante!

Bonjour,

Pour ma solution toujours sans macro,

Cela reviendrait à trier les données par code du plus petit au plus grand (ou du plus prioritaire au moins prioritaire) et de faire un supprimer les doublons disponible dans l'onglet données, ça peut marcher si tu ne veux pas garder absolument la dernière date où apparait ta commande mais bien celle qui contient ton statut prioritaire.

C'est plus rébarbatif à faire que via une maccro par contre...

Si tu veux utiliser cette solution, tu n'as plus besoin que de la colonne code statut et supprimer les doublons par code de commande

Salut Ausecour, j'ai essayé de rentrer ta formule histoire de refaire le truc et d'enlever les doublons mais pour cela j'ai des difficultés à reproduire ta formule! en pièce jointe j'ai mis ce que j'ai fait juste peux tu m'aider à voir ou j'ai fait l'erreur s'il te plait!

merci

Rebonjour,

Il s'agit d'une formule matricielle, il faut la valider avec le raccourcis suivant :

Shift + Ctrl + Entrée

Et pour la coller il faut étaler et non copier coller (Excel ne veut pas copier coller les formules matricielles, je ne sais pas pourquoi... )

Le mieux si ton tableau peut varier en taille c'est de le déclarer comme un tableau via "mettre sous forme de tableau" dans l'onglet "Accueil"

Merci de me dire si tu t'en sors cette fois

EDIT:

Valider la formule en formule matricielle est très important afin que les fonction MIN et SI renvoient des tableaux et non une seule valeur

Re re bonjour Ausecour!

Pour la formule c'est bon j'ai compris mon erreur mais quand j'applique dans supprimer les doublons il est écrit "aucune valeur en double trouvée"

du coup que faire?

Bonjour,

Je me repenche sur le problème demain, bonne journée

Pas de soucis!

Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

Bonjour de nouveau!

Comme promis, je me suis penché sur le problème ce matin et j'ai fait des tests de mon côté :

tri des données par ordre croissant suivant le code statut

suppression des doublons par code cde

et j'obtiens le résultat suivant

Si toutefois tu préfères une solution avec macro pour éviter d'ajouter des colonnes de calcul et d'avoir à faire cette manipulation à chaque fois, ça peut se faire!

Bonjour,

Merci d'avoir pensé à moi! je vais d'abord refaire ta proposition et ensuite je vais continuer avec la proposition de macro faite par Braters! merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii beaucoup c'est vraiment gentil

Rechercher des sujets similaires à "macro vba"