Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Effacer les doublons

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

siocnarf

XLDnaute Occasionnel
Bonjour,

J'ai un petit problème que j'ai tenté de résumer plus bas (et dans la pièce jointe). J'ai une série de composant et certaines ont une version et d'autres pas. Ainsi la composant Pomme a le no 1. La composant Pomme est présente deux fois. L'une a un no de version et l'autre pas.

Je souhaiterais donc supprimer la ligne contenant le composant si celui-ci est en double et que le no de version est vide. Dans l'exemple que je donne je ne conserverais que la seconde ligne du composant 1 (pour le composant 1).

Composant Version No
Pomme 1
Pomme 1.0 1
Orange 1.0 2
Raisin 1.0 2
tomate 3
Carotte 1.0 4
Carotte 4

Je souhaites effectuer cet exercice pour tous les composants. Le véritable fichier a 22 000 lignes. Il faut donc que cela soit dynamique.

Comment on ferait cela?

Merci,

François
 

Pièces jointes

Re : Effacer les doublons

Re,


Pour un grand nombre de lignes à traitre, il vaut mieux figer l'affichage
avec ce code:
Code:
Sub Macro1()
Application.ScreenUpdating = False
For i = Range("A65535").End(xlUp).Row To 2 Step -1
    If WorksheetFunction.CountIf(Range("A:A"), Cells(i, 1)) > 1 And Cells(i, 2) = "" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub

à+
Philippe
 
Re : Effacer les doublons

Bonjour,

Il semble y avoir un problème avec votre code. Peut-être mon explication était-elle incorrecte. Je vais donc reformuler.
Il faut dire que dans mon post mon exemple à l'écran a mal sortie...

La dernière colonne contient des nos d'ordinateurs (dernière colonne). Dans votre exemple, cette colonne est vide.
J'ai des ordinateurs qui peuvent avoir des éléments (colonne A) qui sont redondants. Ma différence est dans la version. En effet, lorsque redondant, il y aura un vide dans la colonne version. Donc lorsqu'il y a une redondance pour un ordinateur, on doit supprimer la ligne avec le no de version vide.

Attention, un élément avec un no de version vide mais pas de redondance doit être conservée.
Dans l'exemple que je rejoins avec votre macro: Poireau 5 est retiré alors qu'il devrait demeurer, de même pour laitue 6.

Merci,

François
 

Pièces jointes

Re : Effacer les doublons

Bonjour,

Il semble qu'une formule tel: =SOMMEPROD(($B$1:$B1395=$B1396)*($G$1:$G1395=$G1396)*($B1396<>"")*($C1396="")) pourrait régler mon problème. Toutefois, je m'interroge sur l'effet qu'elle aura sur la performance du classeur. Ici la formule représente ce qu'elle aura l'air à la ligne 1396. Donc à la ligne 1, cela sera rapide mais à la ligne 20 000...

Je vais la transcrire en vba et on verra à moins d'une meilleure proposition.

Merci,

François
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
1 K
Réponses
23
Affichages
474
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…