doublon par colonnes sans supprimer la ligne !!!

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 !

Evelynetfrancois

XLDnaute Impliqué
bonsoir
En cherchant sur le site j'ai trouvé et adapté cette macro qui efface juste le doublon dans la colonne , sans suprimer la ligne.......

elle fonctionne , mais , elle doit etre ecrite un peu "cochonne" !!!
il y a peut-etre plus simple non ?

D'autre part , à quoi ça correspondent les % ????

un grand Merci pour tout
E et F

Dim i%, k%
Dim j%, m%

'Pour suprimer les doublons présent dans la colonne B je fais ....

For i = 2 To Range("B100").End(xlUp).Row
For k = i + 1 To Range("B100").End(xlUp).Row
If Cells(i, 2).Value = Cells(k, 2).Value Then
Cells(k, 2).Value = ""
End If
Next k
Next i

'puis
'Pour suprimer les doublons présent dans la colonne D je fais ...

For j = 2 To Range("D100").End(xlUp).Row
For m = j + 1 To Range("D100").End(xlUp).Row
If Cells(j, 4).Value = Cells(m, 4).Value Then
Cells(m, 4).Value = ""
End If
Next m
Next j
End Sub
 
Re : doublon par colonnes sans supprimer la ligne !!!

Bonjour,

je pense que ce code devrait être plus rapide, on ne fait qu'une "descente", dans ta colonne D :

Code:
Sub supp_doublons()
Dim Doublons As Object, I As Long
Set Doublons = CreateObject("Scripting.Dictionary") 'on déclare l'objet Doublons
    For I = 2 To [D65000].End(xlUp).Row 'de la ligne 2 à la dernière ligne de D
        If Not Doublons.Exists(Cells(I, 4).Value) Then 'si la valeur n'existe pas, on l'insère dans l'objet
            Doublons.Add Cells(I, 4).Value, Cells(I, 4).Value
        Else
            Cells(I, 4).ClearContents 'si elle existe, vide la cellule
        End If
    Next I
End Sub
 
Re : doublon par colonnes sans supprimer la ligne !!!

Bonsoir bhbh
Merci pour ta proposition, mais je développe l’idée ...

Ma macro est " doublée " pour traiter indépendamment la colonne B ........puis la colonne D
Ces deux colonnes n'ayant rien à voir entre elles, elles ne font que de collecter des infos, pour alimenter des combos.

[.Range("D" & .Range("D100").End(xlUp).Row + 1) =Application.Proper(ComboBox2.Text)
...........
Elles se trouvent l'une à cote de l’autre, et toutes les soluces de suppressions de doublons que j ai trouvé, suppriment les lignes complètement !!! Ce qui ne m'arrange pas du tout ....
Donc je les " traite" l'une après l’autre .....de façon indépendante,
La 1er macro efface les doublons compris dans la coll B
La 2° macro efface les doublons compris dans la coll D
Puis je trie chaque colonne indépendamment pour resserrer les infos ainsi épurées……
Voilà voilou

Bonne soirée, encore merci pour tout …… !
E et F
 
Re : doublon par colonnes sans supprimer la ligne !!!

Re-,

essaie ainsi :

Code:
Sub supp_doublons_et_tri()
Dim Doublons As Object, I As Long
Set Doublons = CreateObject("Scripting.Dictionary") 'on déclare l'objet Doublons
    For I = 2 To [B65000].End(xlUp).Row 'de la ligne 2 à la dernière ligne de D
        If Not Doublons.Exists(Cells(I, 2).Value) Then 'si la valeur n'existe pas, on l'insère dans l'objet
            Doublons.Add Cells(I, 2).Value, Cells(I, 2).Value
        Else
            Cells(I, 2).ClearContents 'si elle existe, vide la cellule
        End If
    Next I
Doublons.RemoveAll
    For I = 2 To [D65000].End(xlUp).Row 'de la ligne 2 à la dernière ligne de D
        If Not Doublons.Exists(Cells(I, 4).Value) Then 'si la valeur n'existe pas, on l'insère dans l'objet
            Doublons.Add Cells(I, 4).Value, Cells(I, 4).Value
        Else
            Cells(I, 4).ClearContents 'si elle existe, vide la cellule
        End If
    Next I
Range("B1:B" & [B65000].End(xlUp).Row).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess
Range("D1:D" & [D65000].End(xlUp).Row).Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlGuess
End Sub
 
Re : doublon par colonnes sans supprimer la ligne !!!

RE bhbh . MERCI

Bon , là je viens de tester Ta macro avec "F8", effectivement ta proposition est bien plus rapide !!!!!
De plus je note le tri des colonnes , bien plus court qu'avec l'enregistreur !!

je te remercie beaucoup pour le temps que tu m'as consacré, et pour ton efficacité

au plaisir de te lire de nouveau
trés bonne soirée
E et F heureux !!!
 
- 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

Réponses
4
Affichages
738
Réponses
15
Affichages
793
Réponses
5
Affichages
917
Réponses
8
Affichages
400
Réponses
4
Affichages
284
Réponses
10
Affichages
673
Retour