EXCEL report de macro

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

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. 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
      1. 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 ?