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

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
 

M12

XLDnaute Accro
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
 

Statistiques des forums

Discussions
312 177
Messages
2 085 973
Membres
103 073
dernier inscrit
MSCHOE16