Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

  • Initiateur de la discussion Initiateur de la discussion Calimero33
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Calimero33

Guest
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
 
Re : récupérer les valeurs uniques d'une plage de données


Salut Calimero33 et le forum,
et si tu rajoute
cellule.offset(0,0).deleteavant le end if ?
Suerte
croco
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
878
Réponses
4
Affichages
542
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…