EXCEL report de macro

Judie63 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   338
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   338
 
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