Bonjour,
J'ai une macro sur laquelle j'essaye de faire la recherche de doublons et ceci sur deux colonnes
Deux colonnes (C et D); dans C les valeurs sont 1,2,3...
Dans D la valeur est entrant.
Donc un tableau du genre:
1 entrant
1 entrant
2 entrant
3 entrant
3 entrant
....
Je souhaite prendre la première ligne (c-a-d "1entrant"), la chercher dans les lignes suivantes et si je trouve une correspondance je supprime la ligne. Je continue jusqu'à la fin de la colonne puis je cherche une autre valeur (2entrant par exemple). Et ainsi de suite
Le code que j'ai réussi à faire:
Sauf que pour 30000 lignes c'est très très long.
J'ai essayé avec Find mais en vain (certainement mon niveau qui est en cause)
Avez-vous des idées à me conseiller ?
Merci
J'ai une macro sur laquelle j'essaye de faire la recherche de doublons et ceci sur deux colonnes
Deux colonnes (C et D); dans C les valeurs sont 1,2,3...
Dans D la valeur est entrant.
Donc un tableau du genre:
1 entrant
1 entrant
2 entrant
3 entrant
3 entrant
....
Je souhaite prendre la première ligne (c-a-d "1entrant"), la chercher dans les lignes suivantes et si je trouve une correspondance je supprime la ligne. Je continue jusqu'à la fin de la colonne puis je cherche une autre valeur (2entrant par exemple). Et ainsi de suite
Le code que j'ai réussi à faire:
Code:
sub doublon()
i = 2
j = 3
While Workbooks(Thisbook).Sheets("Feuil1").Range("A" & i) <> ""
Do Until Workbooks(Thisbook).Sheets("Feuil1").Range("D" & j).Value = ""
If j = i Then
j = j + 1
ElseIf Workbooks(Thisbook).Sheets("Feuil1").Range("C" & i).Value & Workbooks(Thisbook).Sheets("Feuil1").Range("D" & i).Value = Workbooks(Thisbook).Sheets("Feuil1").Range("C" & j).Value & Workbooks(Thisbook).Sheets("Feuil1").Range("D" & j).Value Then
Workbooks(Thisbook).Sheets("Feuil1").Rows(j).EntireRow.Delete
j = j - 1
ElseIf Workbooks(Thisbook).Sheets("Feuil1").Range("C" & i).Value & Workbooks(Thisbook).Sheets("Feuil1").Range("D" & i).Value <> Workbooks(Thisbook).Sheets("Feuil1").Range("C" & j).Value & Workbooks(Thisbook).Sheets("Feuil1").Range("D" & j).Value Then
j = j + 1
End If
Loop
i = i + 1
j = 2
Wend
End Sub
Sauf que pour 30000 lignes c'est très très long.
J'ai essayé avec Find mais en vain (certainement mon niveau qui est en cause)
Avez-vous des idées à me conseiller ?
Merci
Dernière édition: