Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Activer les macro en vba ?

Dranreb

XLDnaute Barbatruc
Bonjour.
Non, puisque son exécution nécessite qu'elles soient actives.
Tout ce qu'on peut faire c'est appeler une macro d'un module standard qui rend visible toutes les feuilles puis en masque une contenant un contrôle signalant en grand que les macros doivent être activées, lequel appelle aussi cette macro.
Dand une Workbook_BeforeSave rendre visible cette fameuse feuille puis VeryHidden toutes les autres.
 

Dranreb

XLDnaute Barbatruc
Par exemple, dans un module standard :
VB:
Option Explicit

Sub AfficherOnglets()
Dim Ong As Object
For Each Ong In ThisWorkbook.Sheets
   Ong.Visible = True
   Next Ong
FActiverMacros.Visible = False
ThisWorkbook.Saved = True
End Sub
Et dans ThisWorkbook :
VB:
Option Explicit
Private LaisserMasquées As Boolean

Private Sub Workbook_Open()
AfficherOnglets
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Ong As Object
FActiverMacros.Visible = True
For Each Ong In ThisWorkbook.Sheets
   If Ong.Name <> FActiverMacros.Name Then Ong.Visible = xlSheetVeryHidden
   Next Ong
If Not LaisserMasquées Then Application.OnTime Now + TimeSerial(0, 0, 1), "AfficherOnglets"
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
LaisserMasquées = True
End Sub
FActiverMacro étant le nom dans la rubrique Miscrosoft Excel Objets de l'objet Worksheet représentant une feuille portant un bouton de formulaire auquel est affectée la macro AfficherOnglets .
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…