Supprimer ligne a condition que

Bonjour à tous,

J'aurais encore besoin d'un coup de main pour une nouvelle macro...

J'ai toute une liste de devis (avec des numéros qui se suivent ...aucun trou). Certains devis sont déclinés en plusieurs versions (même numéro mais avec des montant différents). Certains sont acceptés d'autres non.

Le but est de garder une seule version du devis soit parce qu'il a été accepté, ou si il a été refusé et décliné en x versions garder uniquement celui avec le plus gros montant...

J'espère avoir été claire

Je vous laisse le fichier réduit avec la version finale espérée...

Le luxe serait ne m'expliquer chaque ligne de votre macro pour l'adapter à mon fichier final mais bon ça c'est dans le cas où vous avez du temps naturellement

Merci d'avance,

Christelle

24liste-devis.xlsx (12.49 Ko)

Bonsoir Christelle,

Je te retourne ton fichier modifié :

26liste-devis.xlsm (21.45 Ko)

À l'ouverture du fichier, tu es sur la feuille "résultat" ; tu peux voir que le tableau est vide (sauf les entêtes).

Va sur la 1ère feuille "liste" ; fais Ctrl e, puis vérifie bien soigneusement tous les résultats.

Alt F11 pour voir le code VBA, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

Bonjour Dhany,

Merci beaucoup ça marche bien... sauf que ... naturellement y a forcement un hic...

En fait mon tableau comporte 7 colonnes ... et le montant se trouve dans la colonne F et le oui/non dans la G...

Je vais tâtonner savoir ou modifier dans la macro.

En tout cas merci bcp c'est excellent.

Christelle

@Christelle

Tu a écrit :

mon tableau comporte 7 colonnes ... et le montant se trouve dans la colonne F et le oui/non dans la G...

y'a plusieurs modifications à faire (mais avec tes tâtonnements, tu les as peut-être déjà trouvées ) :


1) pour l'effacement préalable du tableau des résultats, G au lieu de D :

If dlig <> 1 Then wd.Range("A2:G" & dlig).ClearContents


2) pour les 2 .offset avec ,2 les remplacer par ,5 ; pour les 2 .offset avec ,3 les remplacer par ,6 :

nd1 = .Value: mnt = .Offset(, 5): m2 = mnt: flg = -(.Offset(, 6) = "Oui")

If .Offset(dv, 6) = "Oui" Then flg = 1: d2 = dv ' le devis est accepté

mnt = .Offset(dv, 5): If mnt > m2 Then m2 = mnt: d2 = dv ' montant >


3) pour la copie d'une ligne, remplacer ,4 par ,7 :

.Offset(d2).Resize(, 7).Copy: wd.Cells(lg2, 1).PasteSpecial -4163


j'crois qu'tout y est ! doit plus y'avoir de hic !

dhany

Merci Dhany... il m'en manquait un

Très belle journée à toi

Christelle

merci pour les ! et très belle journée à toi aussi !

dhany

Rechercher des sujets similaires à "supprimer ligne condition que"