XL 2010 Activer Macro Obligatoirement

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 !

donadoni16

XLDnaute Junior
Bonjour à tous,

le code ci-dessous permet d'afficher un message qui demande d'activer les macros obligatoirement avant d'ouvrir le fichier
le problème c'est qu'il enregistre tout seul toutes les modifications faites sur le fichier sans me le demander comme fait excel normalement avant de quitter un classeur
comment je peux le rectifier pour qu'il me demande avant de sortir d'enregistrer ou annuler ???

VB:
Sub Auto_Open()
kh_wVisible True
End Sub

Sub Auto_Close()
kh_wVisible False
ThisWorkbook.Close Not CBool(ThisWorkbook.Saved)
End Sub


Sub kh_wVisible(ibol As Boolean)
Dim nBook As String
nBook = ThisWorkbook.Name
With Windows(nBook)
    If .Visible = Not ibol Then .Visible = ibol
End With
End Sub
 
Bonjour donadoni16, le forum,

On peut faire les choses plus simplement en supprimant la macro Workbook_BeforeClose.

Avantage : c'est la boîte de dialogue native d'Excel qui apparaît à la fermeture.

Inconvénient : le visuel est moins bon quand on enregistre à la fermeture.

Fichier (2), à vous de voir si vous le préférez au fichier (1).

A+
 

Pièces jointes

Bonsoir Job, Le forum
je reviens vers vous au sujet du code ci-dessous qui était l'objet de ma problématique
est ce qu'il y'a possibilité de le rectifier pour le mettre dans un Module standard et non pas dans thisworkbook ??

Cordialement

VB:
Option Explicit

Private Sub Workbook_Open()
Dim w As Window
For Each w In Me.Windows: w.Visible = True: Next 'il peut y avoir plusieurs fenêtres sur un même classeur
Me.Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Cancel = True
If Me.Saved Then Exit Sub
Dim w As Window
Application.ScreenUpdating = False
For Each w In Me.Windows: w.Visible = False: Next
Application.EnableEvents = False
Me.Save
Application.EnableEvents = True
Workbook_Open 'lance cette macro
End Sub
 
Ben moi j'ai bien le message
upload_2017-1-22_18-53-40.png
 
Re

Il remplace l'autre Sub Auto_Close()

Par contre, je rencontre un problème. Ce fichier, enregistré sur le bureau, fonctionne parfaitement (ouverture et fermeture)
Le même fichier, enregistré sous "Mes documents", ne lance plus le message à l'ouverture.

Je n'y comprends rien ...
 
Bonjour donadoni16, le fil,

La Workbook_Open peut être remplacée par une macro Auto_ Open (ôter l'espace) dans un module standard.

Mais sauf de rares exceptions, plus personne n'utilise cette macro, elle est obsolète depuis longtemps.

On ne peut pas faire la même chose avec la Workbook_BeforeSave.

A+
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
908
Retour