Rechercher : dans
Par :

[VBA EXCEL] Problème avec les doublons

Dernière réponse le 2 aoû 2006 à 18:01:52 ben7777, le 2 aoû 2006 à 15:45:32 
 Signaler ce message aux modérateurs

Bonjour,

j'ai une colonne que je trie alphabétiquement et sur laquelle je supprime les doublons avec ce code :

Range("a2").Select
ActiveCell.CurrentRegion.Sort Key1:=Range("a2"), Order1:=xlAscending, Header:=xlYes
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
While ActiveCell <> ""

If ActiveCell= donnee1 Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select

Else
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select


Le problème c'est qu'il me garde les doublons qui ne sont pas écrit de la même façon. Je m'explique :
Il va me supprimer tous les Jean DUPONT qui ne servent à rien mais me laisser Jean dupont, JEAN DUPONT, jean Dupont, ou encore jean DUPONT, etc.

C'est un problème de majuscules il me semble donc si vous avez une solution pour mettre toutes les cellules en majuscules par exemple, je suis preneur !

Merci d'avance

1

Darshu, le 2 aoû 2006 à 15:55:32

Salut.

J'ai jamais fait de VBA, mais en cherchant sur google avec "VBA majuscule" on trouve très rapidement ceci :
http://access.developpez.com/faq/?page=ManipDATA#ConvMajLettr

C'est fou comme c'est dur de chercher une réponse ...

T'as pensé à regarder sur Google avant de poser ta question ? 

Répondre à Darshu

2

 jacmartun, le 2 aoû 2006 à 18:01:52

Bonjour ben 777, le forum

Essaye comme ca , ca devrait repondre a ton souci

Sub maj()

Range("a2").Select


Do Until IsEmpty(ActiveCell)

ActiveCell.Value = StrConv(ActiveCell, vbUpperCase)
ActiveCell.Offset(1, 0).Select

Loop

Range("a2").Select
ActiveCell.CurrentRegion.Sort Key1:=Range("a2"), Order1:=xlAscending, Header:=xlYes
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select
While ActiveCell <> ""

If ActiveCell = donnee1 Then
ActiveCell.EntireRow.Delete
ActiveCell.Offset(-1, 0).Select
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select

Else
donnee1 = ActiveCell
ActiveCell.Offset(1, 0).Select

End If
Wend
End Sub

Répondre à jacmartun