EXCEL report de macro

Fermé
Judie63 Messages postés 35 Date d'inscription mardi 3 avril 2018 Statut Membre Dernière intervention 31 août 2022 - Modifié le 10 avril 2018 à 12:44
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 10 avril 2018 à 14:56
Bonjour,
j'ai créé une macro pour trier un tableau par le biais du bouton macro tout est ok. Mais je voudrais utiliser cette macro dans un autre tableau identique qui se trouve sur la même feuille pour faire le tri , est ce possible sans créer une nouvelle macro ? Je connais rien en Visual basique
Merci par avance pour vos réponses
Voici la macro
Sub TRICLAS()
'
' TRICLAS Macro
'

'
Range("B9:L15").Select
ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Range( _
"C10:C15"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Range( _
"J10:J15"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Range( _
"L10:L15"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Range( _
"B10:B15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("class poule 1").Sort
.SetRange Range("B9:L15")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
A voir également:

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
10 avril 2018 à 13:13
Bonjour,
Un exemple
Public Plage, Plage1, Plage2, Plage3, Plage4

Sub TRICLAS()
    Application.ScreenUpdating = False
    Set Plage = Range("B9:L15")
    Set Plage1 = Range("C10:C15")
    Set Plage2 = Range("J10:J15")
    Set Plage3 = Range("L10:L15")
    Set Plage4 = Range("B10:B15")
    AppliquerTri
    
    'Continuez avec vos autres plages à trier
    Set Plage = Range("B19:L25")
    Set Plage1 = Range("C20:C25")
    Set Plage2 = Range("J20:J25")
    Set Plage3 = Range("L20:L25")
    Set Plage4 = Range("B20:B25")
    AppliquerTri
End Sub

Sub AppliquerTri()
    Plage.Select
    ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Plage1, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Plage2, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Plage3, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("class poule 1").Sort.SortFields.Add Key:=Plage4, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("class poule 1").Sort
        .SetRange Plage
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

cdlt
0
Judie63 Messages postés 35 Date d'inscription mardi 3 avril 2018 Statut Membre Dernière intervention 31 août 2022
Modifié le 10 avril 2018 à 13:39
Bonjour,
désolé pour moi c'est du chinois. Si je comprends je suis dans l'obligation de mettre toutes les plages de tri car j'ai 5 petits tableaux à trier.
Cet énoncé je dois le mettre où? en passant par macro ?
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
10 avril 2018 à 14:56
Il y a 2 macros.
La première "TRICLAS", ou l'on charge toutes les plages de chaque tableau à traiter.
paramètres du 1er tableau:
Set Plage = Range("B9:L15") 'tableau dans son entièreté
Set Plage1 = Range("C10:C15") 1er critère de tri
Set Plage2 = Range("J10:J15") 2ème critère de tri
Set Plage3 = Range("L10:L15") 3ème critère de tri
Set Plage4 = Range("B10:B15") 4ème critère de tri
Une fois les paramètres chargés, la macro "AppliquerTri" est lancée dans la foulée.

Quand le tri du 1er tableau est terminé on charge les paramètres du 2ème tableau

Set Plage = Range("B9:L15") 'mettez ici pour chaque ligne, les plages du 2ème tableau
Set Plage1 = Range("C10:C15") 1er critère de tri
Set Plage2 = Range("J10:J15") 2ème critère de tri
Set Plage3 = Range("L10:L15") 3ème critère de tri
Set Plage4 = Range("B10:B15") 4ème critère de tri
puis la macro "AppliquerTri" est lancée à nouveau.

l'opération se répètera autant de fois que vous aurez rentré de tableaux
0