Désactiver l'éxécution d'une macro, par code VBA ?

Tonino7

XLDnaute Occasionnel
Bonjour,

dans ThisWorkBook, j'ai une macro evenementielle "Private Sub Workbook_SheetActivate". Cela a pour effet, d'oter la barre de formule et de protéger la feuille à chaque fois que j'active une feuille (donc dès que je change de feuille)

Maintenant, je voudrais pouvoir rendre cette macro impuissante lorsque je clique sur un bouton. Quel code me proposeriez-vous?

Merci
 

wilfried_42

XLDnaute Barbatruc
Re : Désactiver l'éxécution d'une macro, par code VBA ?

Bonjour tonino7

Desactiver l'intercepteur d'evenement

Application.enabledEvents= false

Il faut ensuite le remtre en place

Application.EnabledEvents = true

Avec cette methode, tu bloques tout les intercepteurs d'evenement Workbook - Worksheet

Alors si tu veux faire des saisies et que tu as des traitements par macro liée au saisie, ils ne seront pas geres. Seule les formules, les objets (Boutons, listbox......) liés au macros seront actives
 

Spitnolan08

XLDnaute Barbatruc
Re : Désactiver l'éxécution d'une macro, par code VBA ?

Bonjour Tonino, Wilfried:),

Tu peux utiliser une variable public de type boolean.
Code:
Public Flag as boolean

Private Sub Workbook_SheetActivate
If Flag = 0 then exit sub
....Ton code normal
end sub

Private sub commandbutton1_click()
If Flag=0 then 
Flag = 1
else
Flag = 0
end if
end sub
Cordialement
 

Tonino7

XLDnaute Occasionnel
Re : Désactiver l'éxécution d'une macro, par code VBA ?

Merci Spitnolan ,

juste avant que tu me répondes, j'ai fait à peu près la meme chose que toi. Avec range("A1") = 1 lorsque je clique sur le bouton

et dans Private Sub Workbook_SheetActivate
j'ai rajouté : if range("A1") = 1 then Exit sub

c'était un truc assez con j'dois dire.. mais j'ai tellement le nez dedans en ce moment que j'arrive plus à voir certaines évidences lol

merci @+
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 897
Membres
101 833
dernier inscrit
sandra25