[RESOLU] Trier un tableau en VBA

Ternoise

XLDnaute Occasionnel
Bonsoir le Forum

Cette ligne pour trier ne fonctionne pas. Je ne sais pas pourquoi.
.Range("B:I" & Lig).Sort .[B3], xlDescending, Header:=xlYes 'tri alphabétique

J'ai regardé pas mal d'exemples mais pas moyen.

Les données de mon tableau commencent en B4 jusqu’à la colonne I
Les entêtes sont en ligne 3

J'aimerais trier mon tableau par ordre alphabétique sur la colonne B donc B3

Merci de votre aide
David

Mon code :
Private Sub CmdConfirmAjouter_Click()

ListPMT.Value = ""
Lig = Sheets("BDPMT").[B65000].End(xlUp).Row + 1
With Sheets("BDPMT")

.Range("B" & Lig).Value = Me.TextVille.Value
.Range("C" & Lig).Value = Me.TextLieux.Value
.Range("D" & Lig).Value = Me.TextNom.Value
.Range("E" & Lig).Value = Me.TextDate.Value
.Range("F" & Lig).Value = Me.TextMode.Value
.Range("G" & Lig).Value = Me.TextMotif.Value
.Range("H" & Lig).Value = Me.TextAttribution.Value
.Range("I" & Lig).Value = Format(Me.TextDateAttribution.Value, "mm/dd/yyyy")

'Tri du tableau sur la colonne B
.Range("B:I" & Lig).Sort .[B3], xlDescending, Header:=xlYes 'tri alphabétique

End With
End Sub
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : Trier un tableau en VBA

bonsoir,

EDIT: modifié pour 2003 !

Code:
Lig = 6 '< ici ta ligne et l'entête en B3 !
 Sheets("BDPMT").Select
 R1$ = "B3": R$ = R1$ & ":I" & Lig
 Range(R$).Select
 Selection.Sort Key1:=Range(R1$), Order1:=xlAscending, _
   Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
 
Dernière édition:

kingfadhel

XLDnaute Impliqué
Re : Trier un tableau en VBA

Bonsoir,


UNE PETITE FAUTE DANS TON CODE:


.Range("B:I" & Lig).Sort .[B3], xlDescending, Header:=xlYes 'tri alphabétique


.Range("B3:I" & Lig).Sort .[B3], xlDescending, Header:=xlYes 'tri alphabétique

xlAscending pour tri croissant de A à Z
xlDescending ==> decroissant donc de Z à A
 

néné06

XLDnaute Accro
Re : Trier un tableau en VBA

Bonsoir Ternoise, Roland et le Forum.

Peut-être comme ceci, le tri étant "Descending".

End With

Range("B3:I" & Lig).Select
Selection.Sort Key1:=Range("B3"), Order1:=xlDescending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub

A+

René

Edit: Bonsoir Kingfadhel
 
Dernière édition:

Ternoise

XLDnaute Occasionnel
Re : Trier un tableau en VBA

Bonsoir et merci Roland

Je suis en version 2003. Toutefois j'ai, dans un premier temps, lancé l'enregistreur de macro. mais je pense qu'il y a beaucoup plus simple comme ligne !

Merci toutefois de ton aide
David
 

Roland_M

XLDnaute Barbatruc
Re : Trier un tableau en VBA

re

sous 2003 et simplifié !

Code:
Lig = 6 '< ici ta ligne et l'entête en B3 !
Sheets("BDPMT").Select
R1$ = "B3": R$ = R1$ & ":I" & Lig
Range(R$).Select
Selection.Sort Key1:=Range(R1$), Order1:=xlAscending, _
  Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 136
Membres
103 129
dernier inscrit
Atruc81500