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

Supprimer des doublons non triés sur une colonne

  • Initiateur de la discussion Initiateur de la discussion Kernoz
  • 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 !

Kernoz

XLDnaute Occasionnel
Bonjour à tous !

Je cherche depuis 3 plombes à faire un petit bout de code mais j'ai beau essayer je n'y arrive pas ...

J'ai une macro qui ajoute des données à la suite d'un tableau existant en fonction de dates.
Je voudrais, si par exemple un utilisateur active la macro pour une date deja renseignée ou si les données de cette date ont changées :
* supprimer les anciennes valeurs ( les plus hautes dans le range ) et garder celles qui viennent d'être collées ( les plus basses ).

J'ai essayé avec "RemoveDuplicates" mais cela supprime la ligne la plus basse ...
J'ai essayé en triant mais la ligne basse reste en dessous ...
J'ai essayé avec Application.CountIf mais ca ne marche pas ...
J'ai entendu parler de l'objet dictionary mais je ne connais pas du tout ...

Bref, il me faut un coup de main 😛 J'ai mis un exemple en PJ.

Merci d'avance !
 

Pièces jointes

Re : Supprimer des doublons non triés sur une colonne

Bonsoir.

Une idée de code :
Code:
Sub sansdoublon()
Dim d As Object, ds As Object
Dim dligne As Long, ligne As Long
Set d = CreateObject("scripting.dictionary"): Set ds = CreateObject("scripting.dictionary")
dligne = [b65000].End(xlUp).Row
For ligne = dligne To 7 Step -1
    If Not d.exists(Cells(ligne, 6).Value) Then
        d(Cells(ligne, 6).Value) = ""
            Else: ds(Cells(ligne, 6).Value) = ligne
    End If
Next
For Each c In ds.items
    Rows(c).Delete
Next
End Sub

Bonne soirée.
 
Re : Supprimer des doublons non triés sur une colonne

bonjour tous🙂🙂

si pas trop de lignes on peut ecrire comme cela aussi !!

Code:
Dim m As Object, i As Long
   Set m = CreateObject("Scripting.Dictionary")
   For i = Cells.Find("*", , , , , xlPrevious).Row To 7 Step -1
   If m.Exists(Cells(i, 6).Value) Then _
   Rows(i).Delete Else m.Add Cells(i, 6).Value, Cells(i, 6).Value
   Next i
 
Re : Supprimer des doublons non triés sur une colonne

Désolé de cette réponse tardive mais j'ai eu trop peu de temps pour me replonger dans ce probleme ...

Ca marche super ! Merci beaucoup pour votre réponse 🙂
 
- 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

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…