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

Modif macro Sub trieliminer()

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 !

libellule85

XLDnaute Accro
Bonjour le forum,
J'ai une macro (que vous trouverez ci-dessous) pour trier par ordre alphabétique et pour éliminer les doublons.
Je veux adapter celle-ci à mon nouveau tableau mais je ne sais pas comment faire.
J'ai un tableau qui va de A2 à J500, et je veux que le classement se fasse sur les noms entrés en C et que la ligne où se trouve le nom suive.

Code:
Sub trieliminer()
 Dim X As Long, Dlg As Long

 Dlg = Range("A" & Rows.Count).End(xlUp).Row
 Range("A2:L" & Dlg).Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2"), _
       Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
       xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

 For X = Dlg To 3 Step -1
     If Range("A" & X) = Range("A" & X - 1) Then Rows(X).Delete
 Next
 End Sub
D'avance merci pour vos réponses

Ci joint un fichier exemple
 

Pièces jointes

Dernière édition:
Re : Modif macro Sub trieliminer()

Bonjour Libellule, bonjour le forum,

Peut-être avec la macro événementielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim n As String 'déclare la variable n (nom)
 
If Target.Column <> 3 Then Exit Sub 'si le changement a lieu ailleur que dans la colonne 3 (C), sort de la procédure
If Target.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sont sélectionnées, sort de la procédure
 
n = Target.Value 'définit la varaible n
If n = "" Then 'condition : si la cellule est effacée
    Rows(Target.Row).Delete shift:=xlShiftUp 'supprime la ligne complete
    Exit Sub 'sort de la procédure
End If 'fin de la condition
'tri la plage par rapport au nom
Range("A1").CurrentRegion.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
Columns(3).Find(n, , xlValues, xlWhole).Offset(0, 1).Select 'place le curseur à coté après le tri
End Sub
Elle agit quand tu tapes le nom dans la colonne C. Si tu effaces le nom, elle efface la ligne entière...
 

Pièces jointes

Dernière édition:
- 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

B
  • Question Question
Réponses
2
Affichages
777
Benjy51190
B
Réponses
2
Affichages
892
L
Réponses
9
Affichages
1 K
D
Réponses
4
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…