XL 2019 Macro pour trier en fonction d'une colonne

alexandre33260

XLDnaute Occasionnel
Bonjour, dans le fichier joint, quelque MFC pour colorer les cellules, bref, rien de bien compliqué.

Dans la colonne J il suffit de mettre un nombre pour que cela écrive Semaine (avec le nombre renseigné) et j’aimerai si possible que cela reste comme ça.

Dans les actions, j’aimerais que lorsque je clic sur le bouton ‘Trier’, que les actions se trient en fonction du n° de la semaine.

Dans mon cas, ‘Nouvelle action devrait être positionnée entre Action 5 et Action 6 voire avant Action 5, bref, respecter l’ordre du n° de colonne J.

Merci pour votre aide
 

Pièces jointes

  • Planning.xlsx
    17.1 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Alexandre,
Beaucoup de fonctions XL ont horreur des cellules fusionnées ... dont la fonction Trier.
J'ai donc réagencé pour éviter les cellules fusionnées. Cela ne change pas grand chose.
J'ai supposé que vous vouliez un tri croissant des semaines.
Si la solution vous convient ...
 

Pièces jointes

  • Planning (4).xlsm
    24 KB · Affichages: 16

alexandre33260

XLDnaute Occasionnel
Sylvanu,
juste une autre question, j'ai rajouté une nouvelle feuille, il y en aura au moins 7 dans le futur, mais je ne comprends pas comment faire pour créer la même chose sur les autres feuilles.
Si je renomme les feuille avec le nom tri1 tri2 ect. cela ne fonctionne pas????
 

Pièces jointes

  • Planning 2.xlsm
    30.2 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Alexandre,
C'est normal, c'était pas prévu. Donc je ne traitais que la feuille Nom1.
Dans cette PJ j'utilise la feuille courante qui appelle la macro pour travailler, vous pouvez donc dupliquer la feuille tant que vous voulez.
VB:
Sub Tri()
    CurrentSheet = ActiveWorkbook.ActiveSheet.Name
    Range("B6:E1000").Select
    ActiveWorkbook.Worksheets(CurrentSheet).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(CurrentSheet).Sort.SortFields.Add Key:=Range("E7:E1000"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(CurrentSheet).Sort
        .SetRange Range("B6:E1000")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    [A1].Select
End Sub
 

Pièces jointes

  • Planning 2.xlsm
    30.4 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin