Supprimer les doublons sous Excel

Signaler
-
 medmeteo -
Bonjour

Je voudrais supprimer des doublons qui excitent dans une feuille excel de la colonne B à E sauf que je dois doit effacer (les lignes) ceux qui ont dans la colonne A des valeurs négatifs

merci

salutations

7 réponses

Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Bonjour,

Moui pas très
excitant

Et donc qu'as-tu commencé à faire?tu codes bien en vb6 comme le suggère l'endroit où tu as posé ta question et non en vba?


L'expérience, c'est une connerie par jour, mais jamais la même..
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
Qu'entends-tu par "doublons" sur les colonnes B à E ?
Confirme qu'il n'y a doublon que si toutes les cellules des colonnes B,C,D et E se retrouvent sur une autre ligne et dans les mêmes colonnes.
Le mieux, puisque tu dois dans la foulée supprimer également les lignes qui, en colonne A, comportent une valeur négative, est encore de boucler sur tes lignes.
Mais lolokun a raison : reviens donc avec ton code d'essai.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Voila un exemple que je teste pour deux colonnes seulement puis je vais généralisé

la colonne A qui contient soit des valeur négatif ou positif (genre un id)
la colonne B a E contient de valeur soit par exemple (jour,mois,année,heure)
je cherche les doublons par rapport à (B à E) si je trouve j'efface la ligne qui contient la valeur id négatif


Sub supDoublons()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
[b1].Sort Key1:=Range("b2"), Order1:=xlAscending, Header:=xlGuess
For i = [b65000].End(xlUp).Row To 2 Step -1
If Cells(i, 1) < 0 Then
If Cells(i, 2) = Cells(i - 1, 2) Then Rows(i).Delete

End If
Next i
Application.Calculation = xlCalculationAutomatic
End Sub

merci pour votre aide
cordialement
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
1) Et qu'est-qui t'empêche donc d'ajouter tes autres conditions de suppression ?
2) Je ne comprends pas que tu ne traites pas la condition "si négatif" dans un Or au lieu (comme tu le fais là) d'une espèce de AND (à quoi conduit un if ten ... if Then ...) !
C'est avant tout un problème de réflexion et de logique de l'expression de tes conditions .
Réfléchis un peu plus.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

je ne sais pas si Rows(i).Delete marche

plutot range(...).entirerow.delete ?

coïto ergo sum
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
1) Un très rapide coup d'oeil à toin aide VB(non seulement elle existe, mais est à consulter systématiquement) t'apprendra que EntireRow.delete fonctionne fort bien.
2) cela n'enlève rien à l'essentiel (une condition avec OR est nécessaire).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
j'ai essai ceci mais ça ne fonctionne pas

If Cells(i, 2) = Cells(i - 1, 2) or cells(i,1)<0 Then Rows(i).Delete