EXCEL report de macro

Judie63 Messages postés 43 Statut Membre -  
Frenchie83 Messages postés 2254 Statut Membre -
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

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. Judie63 Messages postés 43 Statut Membre
       
      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
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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