Trier la même colonne dans plusieurs feuilles

Mexav

XLDnaute Nouveau
Bonjour,
J'ai un tableau concernant un calendrier "Anniversaires" de la famille.
Fatalement, il faut les douze mois dont les onglets ont été nommés de Janvier à Décembre, toutes les feuilles ont la même structure. le tri est demandé dans la colonne " Q " soit "Q5:Q342".
La macro trouvée par le système "enregistrement macro", qui fonctionne correctement est:

ActiveWorkbook.Worksheets("Janvier").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Janvier").AutoFilter.Sort.SortFields.Add Key:= _
Range("Q5:Q342"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Janvier").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Que j'ai recopiée pour tous les mois.
J'aurais voulu trouver, une macro avec boucle du genre for...next, pour simplifier .
Merci d'avance et Bon WE.
 

Mexav

XLDnaute Nouveau
Re : Trier la même colonne dans plusieurs feuilles

Bonsoir,

J'essaie de faire un nouveau code en m'inspirant de la précédente;

celle en cours, à modifier:

' janvier
VB:
 Sub Tri_Mois ()
  Sheets("Janvier").Select
 ActiveSheet.Range("$A$5:$AE$342").AutoFilter Field:=16, Criteria1:="1"

' Février
 Sheets("Février").Select
 ActiveSheet.Range("$A$5:$AE$342").AutoFilter Field:=16, Criteria1:="2"

'Mars
 Sheets("Mars").Select
 ActiveSheet.Range("$A$5:$AE$342").AutoFilter Field:=16, Criteria1:="3"

End Sub

Le peu que j'aie déjà fait:

VB:
Sub trieIII()
Dim i
For i = 1 To 12
With Sheets(StrConv(MonthName(i), vbProperCase))
ActiveSheet.Range("A5:AE342").AutoFilter Field:=16, Criteria1:="1"
End With
Next
End Sub

Il y a une 2ième variable à installer pour les critères de 1 à 12, mais comment faire ?

Bonne soirée
Xavier
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Trier la même colonne dans plusieurs feuilles

Bonsoir à tous

Mexav
Et normalement, il faudrait écrire
(j'ai supprimé le ActiveSheet)

VB:
Sub trieIV()
Dim i
For i = 1 To 12
With Sheets(StrConv(MonthName(i), vbProperCase))
.Range("A5:AE342").AutoFilter Field:=16, Criteria1:="1"
End With
Next
End Sub

NB: Il ne s'agit plus de tri désormais, mais de filtre automatique
Si tu as d'autres questions dans le futur, n'hésites pas à ouvrir d'autres fils de discussions, sinon celui-ci va finir par devenir moins compréhensible car traitant de plusieurs questions à la fois.



 
Dernière édition:

Mexav

XLDnaute Nouveau
Re : Trier la même colonne dans plusieurs feuilles

Bonsoir Staple,

Le code fonctionne trop bien, car il filtre tous les mois sur le seul critère janvier.
il faudrait y ajouter une deuxième boucle pour filtrer de mois en mois en une fois.

à bientôt
 

Staple1600

XLDnaute Barbatruc
Re : Trier la même colonne dans plusieurs feuilles

Bonsoir à tous

Mexav
Donc il suffit de ce petit changement, normalement ;)
Je te laisse tester.
Sub trieIV()
Dim i
For i = 1 To 12
With Sheets(StrConv(MonthName(i), vbProperCase))
.Range("A5:AE342").AutoFilter Field:=16, Criteria1:=i
End With
Next
End Sub
 
Dernière édition:

Mexav

XLDnaute Nouveau
Re : Trier la même colonne dans plusieurs feuilles

Merci cela fonctionne, mais que c'est simple quand l'on voit le code terminé, ça m'agace de ne pas pouvoir le réaliser seul, heureusement que de tel dévoué puisse nous aider:eek:

Bonne nuit
Xavier
 

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat