Je vous propose une petite macro pour supprimer les doublons dans un classeur Excel. Une petite variante de cette macro permettra au contraire de ne conserver QUE les doublons.
Dans cette exemple des lignes seront considérées comme des doublons si les valeurs des colonnes 1 ET 2 sont identiques. Ces 2 valeurs sont représentées dans le script par les variables word1 et word2. A la fin du script les lignes dupliquées sont tout simplement supprimées.
Sub RemoveDuplicate()
Sheets(1).UsedRange.EntireRow.Sort Key1:=Range("A1"), Key2:=Range("B1")
i = 1: j = 1
Sheets(1).Select
While Cells(i, 1).Value <> ""
word1 = Cells(i, 1).Value
word2 = Cells(i, 2).Value
j = i + 1
If Cells(i, 2).Value <> "ERASE" Then
While Cells(j, 1).Value <> ""
If Cells(j, 1).Value = word1 And Cells(j, 2).Value = word2 Then
Cells(j, 3).Value = "ERASE"
End If
j = j + 1
Wend
End If
i = i + 1
Wend
For j = i To 1 Step -1
If Cells(j, 3).Value = "ERASE" Then
Rows(j).Select
Selection.Delete Shift:=xlUp
End If
Next j
End Sub
Dans ce deuxième exemple seule la valeur de la colonne 1 de chaque ligne sera utilisée comme condition. Par contre à la fin du script, contrairement à l’exemple précédent, seules les doublons seront conservés !
Sub RemoveDuplicate()
Sheets(1).UsedRange.EntireRow.Sort Key1:=Range("A1"), Key2:=Range("B1")
i = 1: j = 1
Sheets(1).Select
While Cells(i, 1).Value <> ""
word1 = Cells(i, 1).Value
j = i + 1
If Cells(i, 2).Value <> "ERASE" Then
While Cells(j, 1).Value <> ""
If Cells(j, 1).Value = word1 Then
Cells(j, 2).Value = "ERASE"
End If
j = j + 1
Wend
End If
i = i + 1
Wend
For j = i To 1 Step -1
If Cells(j, 2).Value <> "ERASE" Then
Rows(j).Select
Selection.Delete Shift:=xlUp
End If
Next j
End Sub
Maintenant à vous de composer selon votre besoin, j’espère dans tous les cas que ces petites macros vous feront gagner beaucoup de temps !
contribuer
[ Devenir rédacteur sur SysKB ]
rechercher
voter
explorer
la logithèque (Windows | iPhone | Windows Phone 7)
- derniers logiciels
-
- [Version bêta] Chrome
- Filezilla
- Opera
- VirtualBox
- Defraggler
- Wireshark
- CCleaner
- Firefox
- Autoruns
- AVG Free Edition
partenaires
- services en ligne
-
- Envoyer des gros fichiers avec Free
- DNS Lookup
- Calculer un sous réseau
RSS
Email
Twitter
Le 01 Dec. 2009 par hatmos
3 commentaires
Ils en parlent sur le forum
merci merci, grand merci, c'est très utile ce macro, j'étudie actuellement l'excel et çà me sera d'une grande utilité
Comment par streaming le 4 December 2009 a 13:07merci pour cette petite amélioration, ça marche d'enfer!
Comment par mutuelle santé le 7 December 2009 a 15:42Merci beaucoup pour cette outil formidable
Comment par mutuelle_compareo le 7 April 2010 a 11:51Flux RSS sur les commentaires de cet article · TrackBack URI
Laissez un commentaire sur le forum