Bonjour,
je cherche une méthode pour effacer des doublons, triplons, ... dans une longue liste déjà triée.
Donc les valeurs identiques se retrouvent l'une en dessous de l'autre.
J'ai essayé deux manières d'écrire cette macro mais elle ne marche qu'à moitié et je comprends pas pourquoi.
****** version 1
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-2, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-3, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-4, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-5, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
ActiveCell.Offset(1, 0).Select
Loop
**** version 2
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-2, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-3, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-4, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-5, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
ActiveCell.Offset(1, 0).Select
Loop
... avec les deux méthode, ça efface bien un enregistrement si j'ai un doublon, maios si j'ai une triplette ça n'efface qu'un seul et je reste avec un doublon, si j'ai 6 fois le même enregistrement à la fin il en efface 3 et m'en laisse 3
.... quelqu'un pourrait-il me dire ce qui cloche dans ma méthode ?
Merci d'avance
je cherche une méthode pour effacer des doublons, triplons, ... dans une longue liste déjà triée.
Donc les valeurs identiques se retrouvent l'une en dessous de l'autre.
J'ai essayé deux manières d'écrire cette macro mais elle ne marche qu'à moitié et je comprends pas pourquoi.
****** version 1
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-2, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-3, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-4, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
If ActiveCell.Value = ActiveCell.Offset(-5, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
ActiveCell.Offset(1, 0).Select
Loop
**** version 2
Do While ActiveCell.Value <> ""
If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-2, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-3, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-4, 0).Value Or ActiveCell.Value = ActiveCell.Offset(-5, 0).Value Then
Rows(ActiveCell.Row).Select
Selection.Delete Shift:=xlUp
End If
ActiveCell.Offset(1, 0).Select
Loop
... avec les deux méthode, ça efface bien un enregistrement si j'ai un doublon, maios si j'ai une triplette ça n'efface qu'un seul et je reste avec un doublon, si j'ai 6 fois le même enregistrement à la fin il en efface 3 et m'en laisse 3
.... quelqu'un pourrait-il me dire ce qui cloche dans ma méthode ?
Merci d'avance