Comparer des lignes avec différents critères croisés

Il faudrait mettre un premier critère, qui serait de priorité 1 : Si la colonne 11 vaut CANCEL, alors on récupère cette ligne pour cet ID. C'est ce que j'appelais "écraser", c'est elle qui est la plus importante.

Bonjour

Toujours aussi avare d'explications.

Essaie cette version.

Bonjour,

Désolé pour ce long silence et désolé pour mon avarice, je vais tenter une nouvelle fois de donner le plus de détails.

Les critères dont on a parlé précédemment restent les mêmes.

* dans la colonne I on trouve "AFFIRMED_BO" et si dans la colonne J on trouve "PENDING_MO"

* dans la colonne I on trouve "VERIFIED" et si dans la colonne J on trouve "PENDING_MO"

* dans la colonne I on trouve "VERIFIED_MO" et si dans la colonne J on trouve "PENDING_MO"

Et on récupère la version la plus ancienne .

MAIS, et c'est ce que j'ai découvert la semaine dernière, si on a la valeur "CANCEL" dans la colonne K, Il nous faut récupérer cette ligne là. Hiérarchiquement c'est la plus forte. Même si ce n'est pas la version la plus ancienne, la "CANCEL" écrase toutes les autres.

J'espère avoir été plus clair.

Et encore merci pour ton aide.

Bonjour la Machine

Je suis désolé mais je ne comprends toujours pas comment s'applique cette nouvelle condition.

Je ne puis donc rien faire de plus pour toi.

S'il s'agit de trouver la ligne (on dirait à te lire qu'il n'y en a qu'une...) qui contient "CANCEL" en colonne K, pas besoin d'une macro. Une "Edition-Rechercher" dans la colonne suffit.

Mais ce ne doit pas être si simple. Je renonce à essayer de deviner ce qu'il faut faire.

Je suis entété comme un mulet donc je vais essayer une dernière fois.

Il faudrait rajouter une condition à ton code ( qui est très bien), qui filtrerait ce critère dès le début.

Exemple : J'ai une ligne avec 150 col E(ID) , VERIFIED col I ,PENDING_MO col j et 5 col L( version )

2 eme ligne : 150 col E(ID), AFFIRMED_BO col I ,PENDING_MO col j et 4 col L( version )

3 eme ligne : 150 col E(ID), VERIFIED_BO col I ,PENDING_MO col j et 7 col L ( version )

4 eme ligne : 150 col E(ID), ABORT col I ,PENDING_MO col j et 2 col L ( version )

5 ème ligne : 150 col E(ID), CANCEL col k et 6 col L ( version )

Dans cet exemple c'est bien la ligne 5 eme qui contient CANCEL qui m'intéresse car si elle apparait dans un bloc d'ID, c'est elle que je veux récupérer ( malgré que ce ne soit pas la ligne la plus vieille cf valeur 6 col l > valeur 4 de la 2 eme ligne ).

S'il n'y avait pas cette 5 eme ligne, avec CANCEL, ce serait la ligne 2 qui m'intéresserait ( critères valables et version la plus ancienne).

Ce cas ( CANCEL ) arrive relativement peu souvent mais j'ai besoin qu'il soit traité de manière automatique.

Ta remarque de faire une recherche est pertinente, mais sachant que j'aurais déja appliqué ton code, il va falloir que je fasse une recherche manuelle, ce qui n'est pas très pratique. Au lieu de ça, je m'imagine qu'il doit être relativement simple de rechercher, au début de chaque nouvel ID, si ce nouveau 'lot d'ID' ne comporte pas un CANCEL. Si oui , on récupère cette ligne et on passe à l'ID suivant, sinon on contiue à appliquer les critères de ton code précédent qui marchent très bien.

Y vois-tu un peu plus clair ?

Bonjour la Machine

Têtu comme un mulet tu dis ?

C'est pour ça que tu me fais tourner en bourrique !

Essaie avec ced fichier et si ça ne va pas avec la base ci-jointe ce qu'on devrait obtenir.

Non je n'oserais pas te faire tourner en bourrique !

Bon écoute ton code affiche des "x?" dans la 1ère ligne je pense que ça ne marche pas.

Je vais expliquer à mon boss que c'est pas possible et qu'il faudra traiter à la main les cas où il y a les CANCEL.

Le reste de ton code nous fait déjà gagner 1 journée .

Je te remercie pour toute ton aide et surtout ton infinie patience.

Amicalement,

LaMachine

Rechercher des sujets similaires à "comparer lignes differents criteres croises"