Traitement sous condition (+ filtrage) et incrémentation

Bonjour à toutes et à tous,

J'avais déjà mis un post sur ce forum il y a plusieurs mois concernant mon problème, néanmois après plusieurs centaines de modifications, de bidouillages et autre, du code que l'on m'avait proposé, mon besoin a évolué et aujourd'hui, mes faibles connaissances en VBA et les limitations du code que j'ai malgré tout tourné et retourné dans tous les sens, j'avoue que je sèche un peu, je viens donc ici vous demander un peu d'aide :D .

J'ai pensé une nouvelle macro qui pourrait répondre à mon besoin néamoins je ne sais pas si techniquement tout est réalisable ni vraiment comment la faire.

Donc pour faire simple voilà ce dont j'ai besoin : A partir d'un tableau excel rempli, je veux déduire un résultat (colonne B) en fonction du statut d'un test (colonne D) le tout rataché à un "nom" (colonne A). Vous pouvez visualiser le résultat souhaité sur l'image ci-dessous.

image

Le résultat final est donc déterminé en fonction du statut de la colonne D. Si il y a un "NOK" le résultat sera forcément "NOK" dans la colonne B, si il y a un "POK" ou un "NR" le résultat sera forcément "POK", si tout est "OK", le résultat sera "OK", en revanche, si il y a que des "NR", le résultat doit être "NOK".

L'ancienne macro que j'avais bidouillée utilisait des dictionnaires, mais malgré tous mes essais, cette méthode ne semble pas me permettre de gérer autant de cas, surtout avec le cas particulier des "NR" qui sont "NOK" quand ils sont seuls.

J'ai donc songé à une autre méthode, l'idée serait de récupérer la liste des noms (colonne A) pour pouvoir ensuite appliquer un traitement nom par nom. Pour cela j'avais pensé utiliser la fonction "AutoFilter" avec la liste des noms en paramètre puis utiliser la fonction "RechercheV" afin de vérifier si la colonne D contient "NOK", "POK", etc ... et donc appliquer mes conditions, puis ensuite, en fontion des sorties, incrémenter la colonne B avec les bonnes valeurs. Le tout dans une boucle afin de répéter l'opération sur tout le fichier (je précise que celui-ci est de longueur variable).

Voilà, je ne sais pas si tout est clair mais j'espère que quelqu'un pourra m'aider, en tout cas je vous remercie par avance :) !

Pierro

3exemple1.xlsx (10.32 Ko)

Bonjour à tous !

Pierro31 est-ce que les cellules fusionnées sous Résultat final sont prioritaires ? Les cellules fusionnées causent toujours un problème pour un filtre ou code VBA

Merci de ta réponse :)

Non absolument pas, si elles ne sont pas fusionnées ce n'est pas problématique. C'était simplement pour rendre ça plus lisible dans l'exemple.

Voici ton fichier avec une macro qui traite a posteriori les données et inscrit le résultat selon ton cahier des charges.

J'ai du le mettre en fichier .xls pour inclure la macro. du peux aussi enregistrer sous .xlsm

19exemple1.zip (15.54 Ko)

Merci beaucoup @Drissou35 !

J'ai l'impression que tu as réussi à faire ça en 5 min alors que ça fait plusieurs mois que je cherche :D

Encore merci pour ton aide, je pense avoir compris la façon dont tu as écrit ce script, ça ne m'a pas l'air compliqué finalement

PIerre

Rechercher des sujets similaires à "traitement condition filtrage incrementation"