Trier des colonnes entre elles en VBA

Bonjour à tous,

Je vous remercie de m'avoir accepté sur le forum, que je consulte assez régulièrement, trouvant à chaque fois une solution à mes soucis en VBA, sauf dans le cas présent.

Je cherche à créer un programme en VBA qui me permettrait de trier automatiquement des colonnes entre elles sur un classeur Excel. Le tri devra être fait à partir des valeurs de la ligne 4. Les valeurs sont à trier par ordre croissant. A l'issu de ce tri, le contenu de chaque colonne doit donc être déplacé.

J'ai fait un petit exemple de ce que je voudrais obtenir dans le tableau en pièce-jointe.

Merci par avance pour vos solutions !

JoeBlier

Bonjour,

Il n'y a rien de prévu pour le tri horizontal sauf à faire du ligne par ligne. Donc c'est à toi d'apprécier combien de colonnes tu vas intervertir : Dans le cas présent ça se fait en 2 mouvements, mais selon les valeurs, ça peux se faire en seul mouvement.

Sub Macro1()
   Columns(3).Cut
   Columns(2).Insert Shift:=xlToRight
   Columns(4).Cut
   Columns(3).Insert Shift:=xlToRight
End Sub

A+

Merci, mais j'ai trouvé finalement avec ce code :

Sub test()
Range("B2:D6").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add2 Key:=Range("B4:D4") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("B2:D6")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Rechercher des sujets similaires à "trier colonnes entre vba"