XL 2013 Exécuter une macro sur plusieurs feuilles du classeur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

NicPitt

XLDnaute Nouveau
Bonjour,

J'ai cette macro qui trie par date une série de données entre la cellule qui s'appelle A_Début_Tri et celle qui s'appelle A_Fin_Tri. Elle fonctionne parfaitement tant que mon classeur n'a qu'une feuille à trier et que cette feuilles s'appelle "Heures".

Je vais utiliser un classeur pour plusieurs client et le nom "Heures" dans l'onglet sera remplacé par le nom du client. J'aurais aimé que ma macro fonctionne dans chacune des feuilles sans avoir à la modifier. Est-ce possible ?

Merci d'avance et belle journée,




Tri_Dates Macro
'

'
Range("A_Début_Tri").Select
ActiveSheet.Unprotect
Range("A_Début_Tri:AA_Fin_Tri").Select
ActiveWorkbook.Worksheets("Heures").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Heures").Sort.SortFields.Add Key:=Range("A_Début_Tri:A_Fin_Tri") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Heures").Sort.SortFields.Add Key:=Range("J_Début_Tri:J_Fin_Tri") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Heures").Sort
.SetRange Range("A_Début_Tri:AA_Fin_Tri")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A_Début_Tri").End(xlDown).Offset(1, 0).Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 
Bonjour,
Teste comme ceci
Heures devient une variable qui prend le nom de l'onglet
Code:
Range("A_Début_Tri").Select
ActiveSheet.Unprotect
Heures = ActiveSheet.Name
Range("A_Début_Tri:AA_Fin_Tri").Select
ActiveWorkbook.Worksheets(Heures).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(Heures).Sort.SortFields.Add Key:=Range("A_Début_Tri:A_Fin_Tri") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(Heures).Sort.SortFields.Add Key:=Range("J_Début_Tri:J_Fin_Tri") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(Heures).Sort
.SetRange Range("A_Début_Tri:AA_Fin_Tri")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A_Début_Tri").End(xlDown).Offset(1, 0).Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
932
Réponses
6
Affichages
949
Réponses
11
Affichages
726
Réponses
1
Affichages
792
Retour