Appliquer une meme macro pour plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion lesuisse
  • Date de début Date de début

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 !

L

lesuisse

Guest
Bonjour à toutes et à tous,

Je souhaiterai appliquer la macro ci-dessous à plusieurs feuilles de mon fichier.
Comment faire pour ne saisir le code qu'une seule fois et demander à EXCEL de l'appliquer à la feuille 01, 02, 03, 04, etc...
J'ai tenté avec Worksheets("01", "02", "03").select
Mais ca ne passe pas...

Merci de votre aide et bon vendredi

Le Suisse


Worksheets("01").Select
Range("A2").Select
ActiveWindow.FreezePanes = True
Range("A1:U1").Select
Selection.AutoFilter
Range("A2").End(xlDown).Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).EntireRow.Delete
Range("A2").Select
 
Salut Evelynetfrancois

Ben en fait j'ai une feuille "Menu" dans laquelle je commande toutes mes macros. Donc si je mets ActiveSheet.select, Excel va exécuter la macro dans la feuille "Menu" !

Il faudrait en fait préciser les feuilles pour lesquelles la macro doit s'exécuter...
C'est pour cela que j'avais pensé à mettre le nom des feuilles l'une derrière l'autre mais ca ne fonctionne pas...

Merci quand meme !
Bonne journée

Le Suisse
 
Sheets(Array("01", "02", "03")).Select
Selectionne tes feuilles à macrotiser (je sais pas si ça se dit ça... lol)
Sheets("menu").Activate
garde la feuil "menu" a l'ecran
bon courage

en fait ça fait comme quand on selectionne les onglets du bas par paquet pour leur faire subir une action commune

Evelynetfrancois
 
Re

Ca marche toujours pas parce qu'il buggue et me dit que la methode de selection n'est pas bonne au cours de la macro ci-dessous...

Que faire ?

Merci et @ +

Le Suisse


Sheets(Array("01", "02", "03")).Select
Range("A2").Select
ActiveWindow.FreezePanes = True
Range("A1:U1").Select
Selection.AutoFilter
Range("A2").End(xlDown).Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).EntireRow.Delete
Range("A2").Select
 
et si tu mets

Application.screenupdating=false

Sheets("01").Select
ici ta macro
puis
Sheets("02").Select
ici la macro
puis
Sheets("03").Select
ici la macro

puis
sheets("menu").select
end sub

a plus
Evelynetfrancois
 
Re re

C'est ce que j'avais fait au depart mais la Macro est énorme...
Le code ci-dessus n'est qu'une partie de la macro entière...

Je voulais donc eviter de copier/coller la macro pour chaque feuille...
Donc je cherchais quelque chose qui permette au départ de définir les feuilles dans lesquelles la macro doit s'exécuter...

A +

Le Suisse
 
Si tu nommes la feuille comprenant les boutons qui appelle tes macro, Command (ou tout autre nom, essaie le code suivant, où Macro1 est le nom de ta macro a faire tourner.

L'avantage de ceci, c'est que le code est indépendant du nombre de feuilles dans ton fichier, tu peux donc en ajouter ou en retirer à volonté.

Grâce au test sur le nom de la feuille, tu peux évidemment exclure d'autre feuilles pour l'exécution de ta macro.

Sub Test()

Dim V_Sheet As Worksheet

For Each V_Sheet In Worksheets
V_Sheet.Activate
If ActiveSheet.Name <> "Command" Then
Macro1
End If
Next V_Sheet

End Sub
 
Bonjour,

J'ai un problème similaire:

j'utilise la macro suivante pour agir sur toutes les feuilles d'un classeur.

Public Sub Macro2()

For Each ws In ActiveWorkbook.Worksheets()

ws.Range("b4").FormulaR1C1 = "test5"

Next ws

End Sub

ou celle-ci pour agir sur des feuilles connues à l'avance:

Public Sub Macro2()

For Each ws In ActiveWorkbook.Worksheets(Array("feuil1", "feuil2"))

ws.Range("b4").FormulaR1C1 = "test50"
Range("B6").Select
Next ws

End Sub

Mais comment agir uniquement sur des feuilles sélectionnées par groupe de travail ?

Merci par avance.
Guy
 
j'ai finalement trouvé ma réponse dans les anciens sujets du site, voici la solution:

Sub macro3()
''
For Each ws In ActiveWindow.SelectedSheets

ws.Range("b4").FormulaR1C1 = "test5"

Next ws
End Sub

Génial ce site, j'espère que je pourrai y apporter ma contribution !
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
590
Réponses
1
Affichages
431
Réponses
7
Affichages
702
Réponses
3
Affichages
524
Réponses
2
Affichages
912
Retour