XL 2010 Activer Macro Obligatoirement

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
 

job75

XLDnaute Barbatruc
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

  • Petite gymnastique(2).xlsm
    31.3 KB · Affichages: 54

donadoni16

XLDnaute Junior
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
 

Chris401

XLDnaute Accro
Ben moi j'ai bien le message
upload_2017-1-22_18-53-40.png
 

Chris401

XLDnaute Accro
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 ...
 

job75

XLDnaute Barbatruc
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+
 

Discussions similaires

Réponses
6
Affichages
305

Statistiques des forums

Discussions
312 211
Messages
2 086 286
Membres
103 170
dernier inscrit
HASSEN@45