récupérer les valeurs uniques d'une plage de données

Calimero33

XLDnaute Nouveau
Bonjour, j'ai trouvé dans le forum des exemples de suppression de doublons dans une plage de données range mais ça ne correspond pas à mon problème. Je souhaiterai ne garder que les valeurs uniques c'est à dire supprimer les deux valeurs des doublons et non pas une seule des deux valeurs. Actuellement mon code ne supprime qu'une valeur des doublons. Comment puis-je le modifier pour obtenir que les valeurs uniques de ma plage ? Je voudrais le faire en VBA

Dim Cellule As Variant
Dim maplage As Range

Set maplage = Range("A1:A173")
For Each Cellule In maplage

If Cellule = Cellule.Offset(1, 0) Then
Cellule.Offset(1, 0).Delete
End If
Next
 

croco40

XLDnaute Occasionnel
Re : récupérer les valeurs uniques d'une plage de données

Bonjour, j'ai trouvé dans le forum des exemples de suppression de doublons dans une plage de données range mais ça ne correspond pas à mon problème. Je souhaiterai ne garder que les valeurs uniques c'est à dire supprimer les deux valeurs des doublons et non pas une seule des deux valeurs. Actuellement mon code ne supprime qu'une valeur des doublons. Comment puis-je le modifier pour obtenir que les valeurs uniques de ma plage ? Je voudrais le faire en VBA

Dim Cellule As Variant
Dim maplage As Range

Set maplage = Range("A1:A173")
For Each Cellule In maplage

If Cellule = Cellule.Offset(1, 0) Then
Cellule.Offset(1, 0).Delete
End If
Next

Salut Calimero33 et le forum,
et si tu rajoute
cellule.offset(0,0).deleteavant le end if ?
Suerte
croco
 

croco40

XLDnaute Occasionnel
Re : récupérer les valeurs uniques d'une plage de données

Resalut Calimero33,
je te propose une autre méthode car je pense qu'avec ofset ce ne sera pas possible :
fin = Range("a65536").End(xlUp).Row
For i = fin To 2 Step -1 'on fait la boucle en partant de la fin
var1 = Cells(i, 1).Value
If var1 = Cells(i - 1, 1).Value Then
Rows(i).Select
Selection.Delete
Rows(i - 1).Select
Selection.Delete
End If
Next i

elle ne fonctionnera que s'il y a des doublons, si c'est des triples ou plus il faudra revoir ca

suerte
croco
 

laetitia90

XLDnaute Barbatruc
Re : récupérer les valeurs uniques d'une plage de données

bonjour Calimero33 david84 croco40 le forum
dans ton cas tu peus essaye comme cela

Code:
Sub es()
 Dim c As Variant, m As Object
   Application.ScreenUpdating = False
      Set m = CreateObject("Scripting.Dictionary")
    For Each c In Range("a2", Cells(Rows.Count, "a").End(xlUp))
         m(c.Value) = IIf(m.Exists(c.Value), m(c.Value) + 1, 1)
   Next c
      Range("a2", Cells(Rows.Count, "a").End(xlUp)).ClearContents
      [a2].Resize(m.Count, 1) = Application.Transpose(m.keys)
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 499
Messages
2 089 000
Membres
104 002
dernier inscrit
SkrauzTTV