Execution d'une macro dans une macro

  • Initiateur de la discussion Initiateur de la discussion prsut
  • 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 !

P

prsut

Guest
Bonjour Mesdames, Messieurs,

J'ai un certain nombre de macros. Et suivant les boutons et les MDP saisis je souhaite executer certaines macros, seulement je ne sais pas comment executer une macro dans une macro. Je met un exemple de mon code avec 2 boutons.

Si on appui sur le bouton A

Sub boutonA()
Application.ScreenUpdating = False
Dim MDP As String
MDP = InputBox("Entrer mot de passe :", "Désactivation de la protection des feuilles 1,2,3")
If MDP <> "MDPA" Then Exit Sub
For Each f In Worksheets
f.Unprotect MDP
Next

Executer macro déprotection feuille 1
Executer macro déprotection feuille 2
Executer macro déprotection feuille 3
Executer macros diversesA


End Sub

Si on appui sur le bouton B

Sub boutonB()
Application.ScreenUpdating = False
Dim MDP As String
MDP = InputBox("Entrer mot de passe :", "Désactivation de la protection des feuilles 1,4,6")
If MDP <> "MDPA" Then Exit Sub
For Each f In Worksheets
f.Unprotect MDP
Next

Executer macro déprotection feuille 1
Executer macro déprotection feuille 4
Executer macro déprotection feuille 6
Executer macros diversesB


End Sub

Merci d'avance pour vos réponses.
a bientot.
 
Re : Execution d'une macro dans une macro

Bonsoir Prsut,

Tu as une macro "déprotection" sur chaque feuille ???? Ou pour chaque feuille???

Pourquoi cela? Pas la peine! Une seule macro "déprotection" suffit!

Pour lancer une macro à l'intérieur d'une autre, il suffit d'écrire son nom. Si besoin rajouter son emplacement, par exemple :
module1.déprotection
Feuil1.diversesB


Sinon, tu peux aussi rajouter devant le nom de la macro "Call".

Lorsqu'on met au début de la macro :
Code:
Application.ScreenUpdating = False

Bien penser à mettre avant la fin de la macro :
Code:
Application.ScreenUpdating = True

Bonne soirée
 
Dernière édition:
Re : Execution d'une macro dans une macro

Bonjour Excel-lent,

tout d'abord merci pour ta réponse. Je t'explique grossièrement. J'ai en effet une macro de vérouillage pour chaque feuille. En réalité j'ai potentiellement besoin que toutes les feuilles n'ai pas le meme mot de passe. D'autre part je ne connais pas le code pour protéger toutes les feuilles. Enfin la véritable raison qui motive mon choix d'avoir une macro par feuille c'est que mon code est construit comme ceci:

Sheets("m").Visible = True
Sheets("m").Select
Range("A1").Select
ActiveSheet.Unprotect "MDP"
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="MDP"
Sheets("m").Visible = True

Sheets("F").Visible = True
Sheets("F").Select
ActiveSheet.Unprotect "MDP"

Sheets("V").Visible = True
Sheets("V").Select
ActiveSheet.Unprotect "MDP"

Sheets("F").Select
ActiveSheet.PivotTables("F1").PivotCache.Refresh
ActiveSheet.PivotTables("F2").PivotCache.Refresh

Sheets("V").Select
ActiveSheet.PivotTables("V1").PivotCache.Refresh
ActiveSheet.PivotTables("V2").PivotCache.Refresh

Sheets("F").Select
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="MDP"
Sheets("F").Visible = True

Sheets("V").Select
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="MDP"
Sheets("V").Visible = False

C'est un extrait de ma macro de démarrage.
Donc en réalité je souhaite executer des opérations différentes dans chaque feuille au démarrage du fichier. C'est pour ça que j'ai un vérouillage par feuille.
 
- 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

  • Question Question
Microsoft 365 Macro vba excel
Réponses
6
Affichages
617
C
Réponses
1
Affichages
740
  • Question Question
Réponses
10
Affichages
1 K
Retour