Supprimer les doublons dans une colonne

  • Initiateur de la discussion Brice
  • Date de début
B

Brice

Guest
Salut le Forum,

voici mon pb : j'ai dans une colonne toute une série de nombre. Je souhaiterais éliminer les doublons de façon à n'avoir plus qu'un seul exemplaire de chaque nombre ???
Ex : 1, 3, 2, 2, 2, 3
=> 1, 3, 2

Merci d'avance,
A+
 

Hervé

XLDnaute Barbatruc
bonjour brice

si tu ne veux supprimer que les doublons, tu peux essayer cette macro :


Sub Bouton1_QuandClic()
Dim tablo As Variant
Dim data As New Collection
Dim i As Byte

tablo = Range('a1:a' & Range('a65536').End(xlUp).Row)

On Error Resume Next
For i = 1 To UBound(tablo)
        data.Add tablo(i, 1),
CStr(tablo(i, 1))
Next i
On Error GoTo 0

Columns('A').ClearContents

For i = 1 To data.Count
        Cells(i, 1) = data(i)
Next i
End Sub

exemple en piece jointe

salut [file name=Classeur1_20060406160443.zip size=7514]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060406160443.zip[/file]
 

Pièces jointes

  • Classeur1_20060406160443.zip
    7.3 KB · Affichages: 208

porcinet82

XLDnaute Barbatruc
Salut Brice,

Je te propose une petite solution par macro que je viens de retrouver dans mes archives (tes données doivent etre en colonne A) :
Code:
Sub sup_doublons()
Dim i As Integer, k As Integer, var As Integer

For i = 1 To Range('A65536').End(xlUp).Row
    var = 0
    nom1 = Range('A' & i).Value
    For k = i + 1 To Range('A65536').End(xlUp).Row
        nom2 = Range('A' & k).Value
        If nom2 = nom1 Then
            var = 1
            Rows(k).Delete
            k = k - 1
        End If
    Next k
    If var = 1 Then Rows(k).Delete
Next i
End Sub

@+

Edition : Re Hervé ;), le temps de farfouiller dans le pc et tu as été plus rapide, mais la solution est différente donc ca va, comme ca Brice n'aura qu'a choisir

Message édité par: porcinet82, à: 06/04/2006 16:10
 

Hervé

XLDnaute Barbatruc
re brice, salut porcinet, pat

porcinet, une autre syntaxe si tu veux supprimer les lignes :


Sub Bouton1_QuandClic()
Dim i As Integer

Application.ScreenUpdating =
False

For i = Range('a65536').End(xlUp).Row To 1 Step -1
       
If Application.CountIf(Range(Cells(i, 1), 'A1'), Cells(i, 1)) > 1 Then
                Rows(i).Delete
       
End If
Next i
End Sub


salut
 

porcinet82

XLDnaute Barbatruc
re,

Alors la chapeau bas une fois plus mon cher Hervé, au niveau de l'optimisation du code y a pas photo et je m'appercois que j'ai encore beaucoup de chemin à parcourir... :eek:

Je n'ai pas accès a l'aide d'Excel a la Fac donc je ne peux pas regarder comment fonctionne Application.CountIf mais la semaine prochaine c'est vacances donc je me ferai un plaisir de regarder tout ca et de mettre au tableau.

Encore merci à toi,

@+
 
A

amandine.42

Guest
salut à tous.
Je joins une macro qui, je l'espère, va résoudre ton problème Brice. [file name=SuppDoublons.zip size=447]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SuppDoublons.zip[/file]
 

Pièces jointes

  • SuppDoublons.zip
    447 bytes · Affichages: 183

Discussions similaires

Réponses
10
Affichages
496

Statistiques des forums

Discussions
312 868
Messages
2 093 051
Membres
105 621
dernier inscrit
falla