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
 

donadoni16

XLDnaute Junior
Bonjour Job, le forum,
mon but ce n'est pas d'afficher ou non la fenêtre,
le code que j'ai mis dans le post N°1, permet d'afficher un message dès l'ouverture du classeur en demander d'activer les macros et en cliquant dessus, les macros s'activent mais le problème c'est que le moment ou on veut fermer le classeur un message normalement doit s'afficher pour nous demander si on veut enregistrer les modifications faites sur le classeur ou non, ce message ne s'affiche pas à cause de ce code,,
ce que je veux c'est juste une modification sur le code pour que ce message qui s'affiche normalement par excel réapparaît à nouveau dans mes fichiers ou j'utilise ce code

voir fichier ci-joint
 

Pièces jointes

  • Copies.xlsm
    23.4 KB · Affichages: 66

donadoni16

XLDnaute Junior
Re,
je ne sais pas si je me suis mal exprimé pour ce que je cherche :(
le code il fonctionne très bien comme vous pouvez constater sur le fichier que j'ai posté dans le post 18, et dans les fichiers ou j'ai pas ce code le message qui s'affiche avant la fermeture de excel fonctionne par contre sur le fichier ci-joint ou j'ai mon code une fois je ferme le classeur le code enregistre les modifications automatiquement sans m'afficher le message chose qui est faut
 

donadoni16

XLDnaute Junior
re,
le message qui s'affiche avec le code est obligatoire, il n'est pas comme celui qui s'affiche avec la petite barre en jaune
avec le code il s'affiche dès qu'on essaie d'ouvrir le fichier pour nous demander d'activer ou désactiver les macros, si on clique sur désactiver le fichier ne s'ouvre pas donc on est obligé de cliquer sur activer les macros pour qu'il s'ouvre voir l'image ci-jointe

maintenant mon but c'est d'afficher le message qui s'affiche normalement avant la fermeture de chaque classeur excel qui demande d'enregistrer les modifications ou ne pas les enregistrer parce que avec ce code en fermant le classeur le code enregistre automatiquement les modifications
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    103.4 KB · Affichages: 57

job75

XLDnaute Barbatruc
Re,

Le titre du fil c'est bien Activer Macro Obligatoirement non ?

Comme je l'ai montré votre code n'a aucun intérêt et les questions que vous vous posez à son sujet non plus.

Laissez l'utilisateur faire ce qu'il veut, et s'il ne sait pas ce que veut dire "activer les macros" expliquez-lui.

A+
 

job75

XLDnaute Barbatruc
Bonjour donadoni16, le forum,

S'il s'agit uniquement de faire une petite gymnastique intellectuelle voyez ce code dans ThisWorkbook :
Code:
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

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Me.Saved Then Exit Sub
Select Case MsgBox("Voulez-vous enregistrer les modifications faites sur '" & Me.Name & "' ?", 51)
  Case 2: Cancel = True 'Annuler
  Case 7: Me.Saved = True 'Non
  Case 6 'Oui
    Workbook_BeforeSave False, False 'lance cette macro
    If Workbooks.Count = 1 Then Application.Quit Else Me.Close
End Select
End Sub
Fichier joint mais ne le divulguez pas, on vous prendrait pour un malade.

A+
 

Pièces jointes

  • Petite gymnastique(1).xlsm
    31.9 KB · Affichages: 67
Dernière édition:

donadoni16

XLDnaute Junior
Bonsoir Job, le forum,
merci beaucoup pour votre réponse c'est exactement ce que je cherchais...
je ne sais pas si c'est possible de modifier l'interface du message qui s'affiche avant la fermeture pour qu'il soit comme image ci-jointe ??

Cordialement
 

Pièces jointes

  • Sans titre.jpg
    Sans titre.jpg
    33.5 KB · Affichages: 54

job75

XLDnaute Barbatruc
Re,

J'ai fait juste avant votre message une modification sur la macro Workbook_BeforeSave, prenez la bonne version.

Vous remarquerez qu'il n'est pas possible de faire un "Enregistrer sous".

Quant au message il peut être modifié comme vous voulez mais pas les textes des boutons.

Et n'oubliez pas que tout ça c'est pour le fun :
Fichier joint mais ne le divulguez pas, on vous prendrait pour un malade.
A+
 

Discussions similaires

Réponses
6
Affichages
308

Statistiques des forums

Discussions
312 294
Messages
2 086 896
Membres
103 404
dernier inscrit
sultan87