(Resolu) Tri de trois colonnes

riton00

XLDnaute Impliqué
Bonjour à tous

Je cherche à faire un tri automatique croissant de 3 colonnes distinctes a,b,c, par une macro Worksheet.
Exemple dans la première colonne (A) j'ai les noms, dans la deuxième colonne (B) j'ai les prénoms et dans la troisième colonne (C) j'ai un code, au moment du tri il faut que ces trois colonnes soient liées pour ne pas séparer les noms, prénoms,et code et le tri devraient s'effectuer automatiquement après avoir taper le code.

Merci de votre aide, je n'ai pas trouvé mon bonheur sur le forum et pourtant j'en ai passé du temps, ou alors je n'ai pas posé la bonne question pour une réponse positive

Cordialement

Riton00
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Tri de trois colonnes

Bonjour,

essaye ceci, à placer dans le module de la feuille concernée :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Count = 1 Then Range("A1").CurrentRegion.Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom
End Sub

bon après midi
@+
 

riton00

XLDnaute Impliqué
Re : Tri de trois colonnes

Bonsoir à tous

Merci Pierrot93 de ton implication, mais en fait je pense que je me suis mal exprimer ou alors ma question à été mal interprété, en tout les cas ta macro fonctionne mais le seul hic c'est que le tri croissant doit se faire par le nom et pas par le code comme actuellement, par contre le top départ du tri s’effectue après avoir valider le code

Merci

Salutation
 

gosselien

XLDnaute Barbatruc
Re : Tri de trois colonnes

Bonjour,

tu peux mettre une concaténation en colonne D (=a2&b2&c2)pour que tout soit lié et trier sur celle ci; ceci dit, quand on clique sur une cellule de la colonne C, et que l'on clique ensuite sur A-Z pour le tri croissant , si les colonnes sont contigues et ont un titre , ça trie correctement...
Ou alors je n'ai pas encore compris, ce qui m'arrive souvent ;)
 

Pierrot93

XLDnaute Barbatruc
Re : Tri de trois colonnes

Bonjour,

eul hic c'est que le tri croissant doit se faire par le nom et pas par le code

bah... change la clé de C1 à A1....

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Count = 1 Then Range("A1").CurrentRegion.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom
End Sub

bonne journée
@+
 

riton00

XLDnaute Impliqué
Re : Tri de trois colonnes

Bonjour à tous

Merci gosselien et Pierrot93 pour votre investissement mais en fait Pierrot93 ta macro ne fonctionne plus, quand il y a une ligne vide :confused:
Du coup j'ai réussi à trouver une autre macro qui fonctionne selon mes critères, je la met en ligne au cas ou quelqu'un serait éventuellement intéressée :D

Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
If Target.Count > 1 Then Exit Sub
If Target.Column = 3 Then
DerLig = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:C" & DerLig).Sort Range("A1"), xlAscending
End If
End Sub


Bonne Journée

Riton00
 

Discussions similaires

Réponses
3
Affichages
259

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 811
dernier inscrit
shade1452