XL 2013 Corriger mon code VBA

belhoucine dine

XLDnaute Nouveau
Bonsoir tout le monde
Lorsque j'appuie sur le bouton TRI la colonne A, les données sont mélangées entre la dernière et l'avant-dernière
Merci à tous pour l'aide
Je vous enverrai le fichier pour clarification
 

Pièces jointes

  • CHERCHER2.xlsm
    48.4 KB · Affichages: 11

Staple1600

XLDnaute Barbatruc
Bonjour le fil

@belhoucine dine
J'ai ouvert le fichier
Puis j'ai Trier en laissant tourner l'enregistreur de macros
Code:
Sub Macro1()
    ActiveWorkbook.Worksheets("CHERCHER").ListObjects("t_BDD").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("CHERCHER").ListObjects("t_BDD").Sort.SortFields. _
        Add2 Key:=Range("t_BDD[Désignation Produits]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("CHERCHER").ListObjects("t_BDD").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
Le tri semble correct, non ?
Comme le signalait déjà @sylvanu dans le message#6
 

Staple1600

XLDnaute Barbatruc
Re

C'est deux autres syntaxes (old school) semblent également faire le tri
Code:
Sub TRI_BIS()
Dim lOBJ As ListObject
Set lOBJ = ActiveWorkbook.Worksheets("CHERCHER").ListObjects("t_BDD")
lOBJ.Range.Sort _
    Key1:=lOBJ.ListColumns(1), _
    Order1:=xlAscending, _
    Header:=xlYes, _
    OrderCustom:=1, _
    MatchCase:=False, _
    Orientation:=xlTopToBottom
End Sub
Sub TRI_TER()
Dim lOBJ As ListObject
Set lOBJ = ActiveWorkbook.Worksheets("CHERCHER").ListObjects("t_BDD")
lOBJ.Range.Sort Key1:=lOBJ.ListColumns(1), Order1:=xlAscending, Header:=xlYes
End Sub
 

job75

XLDnaute Barbatruc
Bonjour belhoucine dine, JM,

Triez le tableau du post #1 sur la colonne A en ordre décroissant avec la commande Trier.

Puis exécutez votre code en cliquant sur le bouton.

Vous verrez qu'il a un grave défaut : seule la colonne A est triée, pas le tableau entier.

Puisque vous voulez corriger le code utilisez simplement :
VB:
Private Sub CommandButton1_Click()
With ListObjects(1).Range 'tableau structuré
    .Sort .Cells(1), xlAscending, Header:=xlYes
End With
End Sub
A+
 

Pièces jointes

  • CHERCHER2.xlsm
    53.9 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 293
Membres
103 171
dernier inscrit
clemm