J'ai une feuille Excel contenant des lignes en double
Je souhaite supprimer une ligne si ses colonnes sont identiques (ignorer B lors du calcul des doublons mais le supprimer en supprimant une ligne)
Pour le moment, il ignore B pendant la comparaison et la suppression.
Dans Excel 2013
Terminé
Si je vous ai bien compris, avec les lignes 1 et 2, vous voulez supprimer une ligne 2 si et seulement si A1 = A2, C1 = C2, D1 = D2, E1 = E2 et F1 = F2.
C'est ce que je suis venu avec. Il pourrait probablement être plus court mais ça fait l'affaire:
Sub DeleteDuplicate()
Dim current As String
ActiveSheet.Range("A1").Activate
Do While ActiveCell.Value <> ""
current = ActiveCell.Address
ActiveCell.Offset(1, 0).Activate
Do While ActiveCell.Value <> ""
If ((ActiveSheet.Range(current).Value = ActiveCell.Value) And (ActiveSheet.Range(current).Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value) And (ActiveSheet.Range(current).Offset(0, 3).Value = ActiveCell.Offset(0, 3).Value) And (ActiveSheet.Range(current).Offset(0, 4).Value = ActiveCell.Offset(0, 4).Value) And (ActiveSheet.Range(current).Offset(0, 5).Value = ActiveCell.Offset(0, 5).Value)) Then
ActiveSheet.Rows(ActiveCell.Row).Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
ActiveSheet.Range(current).Offset(1, 0).Activate
Loop
End Sub
Cela permet de parcourir toutes les lignes restantes en utilisant ActiveCell comme pointeur sur la ligne en cours d'évaluation et en stockant la cellule de la ligne "d'origine" dans le courant variable. Une fois la boucle terminée, la cellule située sous le courant est activée et la boucle d'évaluation interne redémarre.
Si je me suis trompé quelque part, n'hésitez pas à me le dire :)
Ajoutez cette formule dans chaque ligne, par exemple; dans la colonne G:
=IF(AND(A2=C2,A2=D2,A2=E2,A2=F2),"DELETE ME","")
Cela donnera un résultat comme:
A B C D D F G
- - - - - - -
x o x x x x DELETE ME
x x x x x o
x x x x x x DELETE ME
x o o x x x
Créez ensuite un filtre sur la colonne G pour les lignes indiquant "DELETE ME", puis supprimez-les.
@ Garrulinae
J'ai utilisé votre idée comme source d'inspiration. J'ai eu beaucoup de lignes et ce que je voulais était de supprimer les lignes contenant les valeurs en double d'une colonne. Si j'utilise Supprimer les doublons sur cette colonne, seules les données de cette colonne seront supprimées, pas la ligne entière. Je voulais supprimer toutes les deuxième et troisième rangées de la table entière. Donc, ce que j’ai fait, j’ai créé une nouvelle colonne et laissé la valeur de la première ligne vide, ainsi que l’efface me supprimer dans les deuxième et troisième rangées. Et puis j'ai copié les valeurs des trois premières lignes de cette colonne particulière seulement (pas toute la ligne) et collé sur toute la colonne de la table. Maintenant, je devais "me supprimer" à chaque deuxième et troisième rangées de la colonne entière. Ensuite, je dois juste trier les valeurs de cette colonne et supprimer toutes les lignes contenant me supprimer. Vous pouvez utiliser la même solution si vous souhaitez supprimer tous les 2e, 3e et 4e ou 2e, 3e, 4e et 5e ...
J'espère que ça aide quelqu'un ....