XL 2016 macro : trie alphabétique sans redondance

chifounou

XLDnaute Occasionnel
Bonjour,

J'utilise cette macro, pour ranger dans l'ordre alphabétique la saisie d'emails au sein d'une même colonne

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A3:A2503")) Is Nothing Then
Range("A3:A2503").Sort Key1:=Range("A3"), Order1:=xlAscending
End If
End Sub

Comment faire pour que si je tape un email en doublon, il ne soit pas pris en compte et n'apparaisse qu'une fois malgré tout dans ma colonne ?

Merci à vous
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour chifounou,

peut-être avec ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A3:A2503")) Is Nothing Then
Range("A3:A2503").RemoveDuplicates
Range("A3:A2503").Sort Key1:=Range("A3"), Order1:=xlAscending
End If
End Sub

à+
Philippe
 

DoubleZero

XLDnaute Barbatruc
Bonjour, chifounou, Philippe :), Victor21 :), le Forum,

Comme ceci ?
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
    If Not Intersect(c, Range("a3:a65000")) Is Nothing Then
        Application.EnableEvents = False
        Range("a:a").RemoveDuplicates Columns:=1, Header:=xlYes
        Application.EnableEvents = True
        Range("a3:a65000").Sort Key1:=Range("a3"), Order1:=xlAscending
    End If
End Sub
A bientôt :)
 

Victor21

XLDnaute Barbatruc
Re,

Il manque l'argument obligatoire. Essayez :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    If Not Intersect(Target, Range("A3:A2503")) Is Nothing Then
        Range("A3:A2503").RemoveDuplicates Columns:=1
        Range("A3:A2503").Sort Key1:=Range("A3"), Order1:=xlAscending
    End If
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub


Bonsoir, chère OO ! Grillé sur le fil ! :)
 

DoubleZero

XLDnaute Barbatruc
Re-bonjour,
... Pour une raison mystèrieuse celà supprime ma mise en forme conditionnelle...
A tester : supprimer la MFC de la colonne "a", puis utiliser le code ci-après.
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
    If Not Intersect(c, Range("a3:a65000")) Is Nothing Then
        Application.EnableEvents = False
        Range("a:a").RemoveDuplicates Columns:=1, Header:=xlYes
        Application.EnableEvents = True
        Range("a3:a65000").Sort Key1:=Range("a3"), Order1:=xlAscending
        With Range("a3:a65000").SpecialCells(xlCellTypeConstants)
            .Borders.Value = 0
            .Borders(xlEdgeLeft).Color = -65281
            .Borders(xlEdgeRight).Color = -65281
        End With
    End If
End Sub
A bientôt :)
 

Discussions similaires

  • Résolu(e)
XL 2021 macro
Réponses
9
Affichages
477

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 520
dernier inscrit
Azise