Copie de macros
Résolu
Marlj
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
Marlj Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Marlj Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai fait un ficher pour entrer des données hebdomadaire (un onglet par semaine) qui commence avec la semaine du 4 juillet. Il y a la date, l'heure, l'endroit, responsable, commentaires, etc. J'ai fait une première feuille toute mise en forme, formules, etc. J'ai aussi fait plusieurs macros : filtre par endroit, par responsable, pour la date du jour et aussi une macro qui tri le tableau par jour, puis par heure et j'ai mis des boutons pour ces macros. Je ne suis pas expertes en macros, mais elles fonctionnent toutes correctement.
Le problème : quand j'ai voulu copier ma feuille (pour faire mes 52 onglets), toute les macros ont suivies et fonctionnent bien d'une feuille à l'autre sauf la dernière (tri par date puis par heure). Effectivement, quand je vais dans la feuille du 11 juillet, par exemple, et que je regarde dans le VBA de cette macro, il est indiqué ceci.
ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort.SortFields.Add Key:=Range _
("A12:A201"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort.SortFields.Add Key:=Range _
("C12:C201"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Elle tri donc la feuille du 4 juillet et non celle du 11 juillet. Y a-t-il un moyen pour dire d'exécuter la macro dans la feuille active ou je dois faire 52 macros?
J'espère que je suis claire... Merci de vos lumières.
J'ai fait un ficher pour entrer des données hebdomadaire (un onglet par semaine) qui commence avec la semaine du 4 juillet. Il y a la date, l'heure, l'endroit, responsable, commentaires, etc. J'ai fait une première feuille toute mise en forme, formules, etc. J'ai aussi fait plusieurs macros : filtre par endroit, par responsable, pour la date du jour et aussi une macro qui tri le tableau par jour, puis par heure et j'ai mis des boutons pour ces macros. Je ne suis pas expertes en macros, mais elles fonctionnent toutes correctement.
Le problème : quand j'ai voulu copier ma feuille (pour faire mes 52 onglets), toute les macros ont suivies et fonctionnent bien d'une feuille à l'autre sauf la dernière (tri par date puis par heure). Effectivement, quand je vais dans la feuille du 11 juillet, par exemple, et que je regarde dans le VBA de cette macro, il est indiqué ceci.
ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort.SortFields.Add Key:=Range _
("A12:A201"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort.SortFields.Add Key:=Range _
("C12:C201"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("4 juil").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Elle tri donc la feuille du 4 juillet et non celle du 11 juillet. Y a-t-il un moyen pour dire d'exécuter la macro dans la feuille active ou je dois faire 52 macros?
J'espère que je suis claire... Merci de vos lumières.
A voir également:
- Copie de macros
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Copie rapide - Télécharger - Gestion de fichiers
2 réponses
Bonsoir
Pour faire une macro applicable à la feuille courante :
1) Dans un module (Insertion et Module dans l'editeur VBA) tu crées le cadre d'une macro :
Sub tri_par-dates
End sub
A l'intérieur tu colles tes lignes précédentes et tu remplaces les ActiveWorkbook.Worksheets("4 juil") par Activesheet
2) Dans la 1ere de tes 52 feuilles dans le code du bouton qui doit déclencher la macro, au lieu des lignes de macro tu mets simplement le nom de la macro à effectuer, dans mon exemple tri_par_dates
3) Quand tu auras fait cela pour toutes tes macros et tous tes boutons tu pourra copier 52 fois la feuille. Tu auras 52 fois les instructions des boutons mais qui se limitent à une ligne et qui renvoient aux macros dans le module
Cdlmnt
Via
Pour faire une macro applicable à la feuille courante :
1) Dans un module (Insertion et Module dans l'editeur VBA) tu crées le cadre d'une macro :
Sub tri_par-dates
End sub
A l'intérieur tu colles tes lignes précédentes et tu remplaces les ActiveWorkbook.Worksheets("4 juil") par Activesheet
2) Dans la 1ere de tes 52 feuilles dans le code du bouton qui doit déclencher la macro, au lieu des lignes de macro tu mets simplement le nom de la macro à effectuer, dans mon exemple tri_par_dates
3) Quand tu auras fait cela pour toutes tes macros et tous tes boutons tu pourra copier 52 fois la feuille. Tu auras 52 fois les instructions des boutons mais qui se limitent à une ligne et qui renvoient aux macros dans le module
Cdlmnt
Via
Merci de vos lumières