Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 macro : trie alphabétique sans redondance

  • Initiateur de la discussion Initiateur de la discussion chifounou
  • Date de début Date de début

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 !

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
 
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
 
Bonsoir, chifounou.

Dommage que l'absence de fichier exemple ne nous permette pas de vous expliquer pourquoi la solution de Philippe (que je salue) n'a aucun effet chez vous...
 
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 🙂
 
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 ! 🙂
 
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 🙂
 
- 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
6
Affichages
436
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…