Bonjour,
J'ai fait un fichier avec une dizaine d'onglets (tri-A à tri-J) qui doivent être triés selon une donnée qui se situe (cellules G18 à G27) sur un autre onglet (paramétrages).
J'ai récupéré sur le net une macro qui fonctionne parfaitement pour le 1er onglet, mais pas pour les suivants.
Pourriez-vous m'indiquer quelle fonction ajouter entre chaque feuille pour que cela fonctionne, car j'ai fait un copier coller en ne changeant que la cellule liée pour le tri (G18 à G27) ainsi que le nom de l'onglet concerné (tri-A à tri-J).
Voici le code que j'ai utilisé pour les 2ers onglets.
Sub Choix1()
Sheets("paramétrages").Activate
Select Case Range("k28")
Case 1
Sheets("note").Activate
Range("B2").Select
Case 2
Sheets("paramétrages").Activate
Range("B2").Select
Case 3
'tri de l'équipe A
If Range("g18") = 0 Then
Sheets("tri-A").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g18") < 20 Then
Sheets("tri-A").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("d3") _
, Order2:=xlDescending, Key3:=Range("J3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g18") > 19 Then
Sheets("tri-A").Activate
Range("B3:J22").Select
ActiveWindow.SmallScroll Down:=-3
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("J3") _
, Order2:=xlDescending, Key3:=Range("H3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
End If
End If
End If
'tri de léquipe B
If Range("g19") = 0 Then
Sheets("tri-b").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g19") < 20 Then
Sheets("tri-b").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("d3") _
, Order2:=xlDescending, Key3:=Range("J3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g19") > 19 Then
Sheets("tri-b").Activate
Range("B3:J22").Select
ActiveWindow.SmallScroll Down:=-3
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("J3") _
, Order2:=xlDescending, Key3:=Range("H3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
End If
End If
End If
Sheets("class").Activate
Range("A3").Select
End Select
End Sub
Merci d'avance de votre réponse
Cdlt
J'ai fait un fichier avec une dizaine d'onglets (tri-A à tri-J) qui doivent être triés selon une donnée qui se situe (cellules G18 à G27) sur un autre onglet (paramétrages).
J'ai récupéré sur le net une macro qui fonctionne parfaitement pour le 1er onglet, mais pas pour les suivants.
Pourriez-vous m'indiquer quelle fonction ajouter entre chaque feuille pour que cela fonctionne, car j'ai fait un copier coller en ne changeant que la cellule liée pour le tri (G18 à G27) ainsi que le nom de l'onglet concerné (tri-A à tri-J).
Voici le code que j'ai utilisé pour les 2ers onglets.
Sub Choix1()
Sheets("paramétrages").Activate
Select Case Range("k28")
Case 1
Sheets("note").Activate
Range("B2").Select
Case 2
Sheets("paramétrages").Activate
Range("B2").Select
Case 3
'tri de l'équipe A
If Range("g18") = 0 Then
Sheets("tri-A").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g18") < 20 Then
Sheets("tri-A").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("d3") _
, Order2:=xlDescending, Key3:=Range("J3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g18") > 19 Then
Sheets("tri-A").Activate
Range("B3:J22").Select
ActiveWindow.SmallScroll Down:=-3
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("J3") _
, Order2:=xlDescending, Key3:=Range("H3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
End If
End If
End If
'tri de léquipe B
If Range("g19") = 0 Then
Sheets("tri-b").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g19") < 20 Then
Sheets("tri-b").Activate
Range("B3:J22").Select
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("d3") _
, Order2:=xlDescending, Key3:=Range("J3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
Else
If Range("g19") > 19 Then
Sheets("tri-b").Activate
Range("B3:J22").Select
ActiveWindow.SmallScroll Down:=-3
selection.Sort Key1:=Range("C3"), Order1:=xlDescending, Key2:=Range("J3") _
, Order2:=xlDescending, Key3:=Range("H3"), Order3:=xlDescending, Header _
:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("B1").Select
End If
End If
End If
Sheets("class").Activate
Range("A3").Select
End Select
End Sub
Merci d'avance de votre réponse
Cdlt