Tri sur vba

Résolu
Bonjour,

J'ai un tableau excel sur un nombre de lignes indéfinies (variables), je souhaiterai effectuer un tri sur 2 niveaux.

Le 1er par ordre alphabétique (colonne B)
Le second par ordre alphabétique également (colonne D)

Je voudrais faire ce tri sur l'ensemble du tableau à l'exception de la colonne A qui contient les N° de ligne, si je l'insère je me retrouve avec le N°15 au dessus du N°20, ce qui n'est pas top.

Je vous remercie pour vos réponses

3 réponses

  1. coucou,

    voici le code vba :

    sub tri
    i=1
    ' permet de définir le nombre de lignes de ton tableau grace à la variable i
    do while cells(I,1) <> ""
    i=i+1
    loop

    Range(cells(1,2),cells(i,10).Select 'sélectionnes la plage de la cellule B1 à Ji
    ==> J représente par le 10 (si tu veux t'arrêter avant une autre colonne, remplace le 10 par le numéro de clonne )et i représentant la dernière ligne de ton tableau

    'Pour la suite remplaces Feuil1 par ton nom de feuille
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range(cells(2,2),cells(i,2)), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range(cells(2,4),cells(i,4)), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
    .SetRange Range(cells(2,2),cells(i,10))
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    end sub