Activer les macro en vba ?

lio63

XLDnaute Nouveau
Bonjour, est il possible d'activer les macros avec workbook-open ?

Merci
Lionel
 

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 .
 

Statistiques des forums

Discussions
314 188
Messages
2 106 979
Membres
109 733
dernier inscrit
chardou