Supprimer les doulons avec excel [Résolu/Fermé]

Cyril 39 - 17 sept. 2009 à 09:41 - Dernière réponse :  cyril 39
- 23 sept. 2009 à 15:36
Bonjour,

Bonjour,

je travaille sur le logiciel excel et je voudrais, à l'aide de la VBA supprimer les doublons d'une liste de noms.

Seulement je voudrais que les noms se retrouvent dans l'ordre alphabétique dans la colonne F et qu'il n'y est pas d'espace entre les différents noms et qu'il n'y est plus de doublons.

Donc j'ai déja paramètré une macro j'aimerais que quelqu'un vérifie les erreurs car j'ai d'autres colonnes avec des noms dans ma base de donné. Lorsque j'essaye la macro celle-ci supprime des noms dans d'autres colonnes voisines, alors qu'elle ne doit pas intervenir sur les autres colonnes. Elle me laisse également des doublons et des espaces dans les autres colonnes.

Je voudrais que la macro trie les noms par ordre alphabéthique, me laisse un seul nom lorsqu'il y a 2 fois le même ou plus et qu'il n'y est pas d'espace entre les cellules avec des noms notés à l'intérieur. Je voudrais que la macro agisse dans la colonne de la cellule F3 à F40.


Voici les paramètres de la macro :

Sub Tridoublon()
Dim MaCell As Range
Dim MaCellSuite As Range

Application.ScreenUpdating = False
Worksheets("feuil2").Range("F3").Sort _
Key1:=Worksheets("Feuil2").Range("F3")

Set MaCell = Worksheets("Feuil2").Range("F3")

Do While Not IsEmpty(MaCell)
Set MaCellSuite = MaCell.Offset(1, 0)
If MaCellSuite.Value = MaCell.Value Then
MaCell.EntireRow.Delete
End If
Set MaCell = MaCellSuite
Loop
Application.ScreenUpdating = True

End Sub

J'espère que l'un de vous poura m'aider...Merci
Afficher la suite 

5 réponses

pijaku 12206 Messages postés jeudi 15 mai 2008Date d'inscriptionContributeurStatut 13 septembre 2017 Dernière intervention - 21 sept. 2009 à 09:47
0
Utile
Salut,
Ton problème est ici :
MaCell.EntireRow.Delete supprime toute la ligne... Donc les cellules contenues dans les colonnes voisines sont supprimées.
Remplace par MaCell.Delete Le souci c'est que tu ne conserves pas de cohérence dans ton tableau.

Tu dis : Lorsque j'essaye la macro celle-ci supprime des noms dans d'autres colonnes voisines, alors qu'elle ne doit pas intervenir sur les autres colonnes. Elle me laisse également des doublons et des espaces dans les autres colonnes. Si tu ne veux pas qu'elle agisse sur les autres colonnes pourquoi se plaindre qu'elle y laisse des espaces et des doublons? Je ne te comprends pas là. Donne davantage d'explication pour que l'on puisse t'aider.
michel_m 14942 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 21 sept. 2009 à 12:56
0
Utile
1
Bonjour Cedric, Coucou Pijaku

Pour épurer une liste sur une colonne sans toucher aux autres, tu pourrais utiliser une" collection"
ci joint demo avec explications (tentatives d'...)
http://cjoint.com/?jvm2MoTqrk
pijaku 12206 Messages postés jeudi 15 mai 2008Date d'inscriptionContributeurStatut 13 septembre 2017 Dernière intervention - 22 sept. 2009 à 10:05
Salut michel,
Un mot me vient à l'esprit : whaou!! Je ne connaissais pas "collection" et trouve ça super intéressant... Je vais me pencher la dessus. Très beau résultat en tout cas...
michel_m 14942 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 22 sept. 2009 à 10:15
0
Utile
Salut Pijaku

si tu te penches sur "collection", regardes aussi l'objet "dictionary" beaucoup plus rapide mais ch... pour restituer car nécessitant une variable-tablo (array) intermédiaire
0
Utile
Salut michel et pijaku

Merci pour vos réponses, j'ai réussi à paramètrer la macro pour qu'elle supprime les doublons.

cordialement