1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
Sub TriDonnées()
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String
Dim DerLig As Long, O_Lig As Long, O_Col As Long, Lig As Long
Application.ScreenUpdating = False
Valeur_Cherchee = "Magasin1"
Set PlageDeRecherche = Worksheets("Données").Range("L3:T14") 'Plage de recherche
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
If Trouve Is Nothing Then Exit Sub
DerLig = Cells(Trouve.Row, Trouve.Column).End(xlDown).Row
O_Lig = Trouve.Row + 1 'Ligne "Origine" des données
O = Trouve.Column 'Colonne des mois
O_Col = O + 1 'Colonne "Origine" des données
For Lig = O_Lig To DerLig
DerCol = Cells(Lig, O).End(xlToRight).Column ' Dernière colonne de la ligne traitée
'Lance le tri
ActiveWorkbook.Worksheets("Données").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Données").Sort.SortFields.Add Key:=Range(Cells(Lig, O_Col), Cells(Lig, DerCol)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Données").Sort
.SetRange Range(Cells(Lig, O_Col), Cells(Lig, DerCol))
.Header = xlNo
.MatchCase = False
.Orientation = xlLeftToRight
.SortMethod = xlPinYin
.Apply
End With
Next Lig
End Sub |