Supprimer les doublons sous Excel

medmeteo - 28 janv. 2013 à 16:16
 medmeteo - 29 janv. 2013 à 13:49
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

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
28 janv. 2013 à 16:41
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..
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 janv. 2013 à 18:57
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.
0
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 janv. 2013 à 11:29
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
29 janv. 2013 à 11:53
je ne sais pas si Rows(i).Delete marche

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

coïto ergo sum
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 janv. 2013 à 12:51
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.
0
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
0
Rejoignez-nous