Tri multi-colonne

Bonjour à tous,

Je cherche à faire un tri alphabétique automatique sur plusieurs colonne d'une même feuille, chaque colonne étant indépendante des autres.

J'arrive à le faire sur une colonne, mais je n'arrive pas à élargir sur les 4.

Je vous joint le fichier test, sans macro, si quelqu'un à envie d'y jeter un œil.

Cordialement

65classeur-test.xlsm (11.08 Ko)

Bonjour,

Une proposition à tester

A+

292test.xlsm (22.71 Ko)

Bonjour Frangy,

Merci pour ton essai,

J'ai oublié de spécifié toutefois que je cherchais à faire un tri automatique sans l'utilisation d'un bouton.

Cette base de donnée est sujet à être rempli à l'aide d'un userform, donc pas d'accès à cet onglet.

Re-bonjour,

Bouton ou autre, cela ne change rien.

Tu disposes de la procédure de tri, il te reste à choisir le moyen qui conviendra pour la lancer.

Ayant égaré ma boule de cristal, je ne peux pas deviner ce que tu veux faire

A+

Actuellement, j'ai cette macro sur mon onglet "Base"

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("B:B")) Is Nothing Then
     Call Trop
    End If
End Sub

Et le module associé "Trop"

Sub Trop()
    Dim LastRow As Long
    LastRow = ActiveSheet.Range("B2").End(xlDown).Row
    Range("B2:B" & LastRow).Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("B2"), Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase _
        :=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
        DataOption2:=xlSortNormal
End Sub

Cela me permet dès l'ajout d'un fournisseur (colonne B) via un USF de trier automatiquement ma colonne.

Je cherche à étendre cela à mes 4 colonnes et non seulement la colonne B.

Je m'excuse si je n'ai pas été assez clair Frangy.

Voici tes deux procédures adaptées :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A:D")) Is Nothing Then
         Trop Target.Column
    End If
End Sub
Sub Trop(Col As Integer)
Dim LastRow As Long
    LastRow = ActiveSheet.Cells(2, Col).End(xlDown).Row
    Range(Cells(2, Col), Cells(LastRow, Col)).Sort Key1:=Cells(1, Col), Order1:=xlAscending
End Sub

A+

Super, c'est ce qu'il me fallait.

Merci beaucoup !

Rechercher des sujets similaires à "tri multi colonne"