Suppression ligne dupliquées en fonction d'une valeur
Résolu
Bigmat75
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
Bigmat75 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bigmat75 Messages postés 12 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un fichier excel d'environs 150000 lignes.
Ce fichier contient un certain nombre de lignes dont la valeur dans la colonne A est dupliquée.
J'ai une colonne N avec un certain nombre de valeurs pouvant aller de 1 à 7.
J'aimerai svp, si possible, pouvoir supprimer ces lignes dupliqués (en n'en gardant qu'une seule). Pour chaque dupliqué, la ligne que j'aimerai garder est celle dont la valeur de la colonne N est la plus élevée.
Existe t'il une macro pour faire cela svp?
N'hésitez pas à me demander plus d'infos ou des exemples si mon explication n'est pas claire :-)
En vous remerciant par avance pour votre aide.
CDT
J'ai un fichier excel d'environs 150000 lignes.
Ce fichier contient un certain nombre de lignes dont la valeur dans la colonne A est dupliquée.
J'ai une colonne N avec un certain nombre de valeurs pouvant aller de 1 à 7.
J'aimerai svp, si possible, pouvoir supprimer ces lignes dupliqués (en n'en gardant qu'une seule). Pour chaque dupliqué, la ligne que j'aimerai garder est celle dont la valeur de la colonne N est la plus élevée.
Existe t'il une macro pour faire cela svp?
N'hésitez pas à me demander plus d'infos ou des exemples si mon explication n'est pas claire :-)
En vous remerciant par avance pour votre aide.
CDT
A voir également:
- Suppression ligne dupliquées en fonction d'une valeur
- Fonction si et - Guide
- Forcer suppression fichier - Guide
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
1 réponse
Bonjour,
à tester : https://www.cjoint.com/?DDAn6p9Wx31
Vu le nombre de lignes j'ai privilégié la vitesse de traitement.
Seulement si tu as des dates elles risquent d'être malmenées. Du style 03/04/2014 devient 04/03/2014.
Pas constaté sur mon fichier de travail mais contrôle quand même sur ton fichier. Si c'est le cas il faudra ajouter qcq chose pour les corriger.
Si plusieurs lignes ont la valeur max, seule la 1ère est retenue.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
à tester : https://www.cjoint.com/?DDAn6p9Wx31
Vu le nombre de lignes j'ai privilégié la vitesse de traitement.
Seulement si tu as des dates elles risquent d'être malmenées. Du style 03/04/2014 devient 04/03/2014.
Pas constaté sur mon fichier de travail mais contrôle quand même sur ton fichier. Si c'est le cas il faudra ajouter qcq chose pour les corriger.
Si plusieurs lignes ont la valeur max, seule la 1ère est retenue.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Merci beaucoup.
Je n'ai pas de dates dans le document donc aucun souci ;-)
De plus aucune ligne dupliquée n'aura la même valeur.
Je test et je reviens vers vous pour vous dire si cela fonctionne et surtout un grand merci.
PS: je n'oublierai pas de mettre le sujet en résolu ;-)
Bien cordialement.
Je viens de tester, sur votre fichier cela fonctionne très bien.
Par contre quand je teste sur mes données, j'ai un message d'erreur: "mismatch" à cette ligne "ligMaxi = lig + Application.Match(maxi, Cells(lig, "N").Resize(nbLig), 0) - 1".
Je ne parviens pas à comprendre pourquoi.
Je mets le fichier que j'ai utilisé en pièce jointe de ce message, il contient 1500 lignes, si vous avez le temps d'y jeter un oeil.
https://www.cjoint.com/?3DCkcmbrIsL
Merci encore.
Bien cordialement.
Je pensais que tu n'avais que des entiers en N.
De plus si ton séparateur décimal par défaut est le . il faut convertir.
Essaie avec ça :
eric
Encore merci pour ce code et toutes mes excuses car je ne t'avais pas précisé que la colonne N ne contenait pas que des entiers.
Je vais tester ce code et je te tiens au courant.
Encore un grand merci. Je n'oublierai pas de signaler le sujet comme résolu si cela fonctionne :)
Bien cordialement.
J'ai l'impression que tout fonctionne parfaitement, encore merci.
Je vais re-tester juste pour être sûr et je cloture le topic dans un jour ou deux maximum si je n'ai pas eu de soucis.
Vraiment un grand merci pour toute ton aide :-D
Bien cordialement