2017-07-20 3 views
0

J'ai un problème récurrent. Même lorsque mon code a déclaré ne pas enregistrer les modifications, le classeur est toujours enregistré à la fin du programme. Le problème est que lorsqu'il a un horodatage plus tard, quelqu'un pourrait supposer que certaines modifications ont été apportées, même s'il n'y en avait pas.Le classeur est enregistré malgré le code savechanges = false

Répondre

0

Essayez à la place. Thisworkbook.Saved = fous vrai Excel dans la pensée le classeur a déjà été sauvé ..

Sub Auto_Close() 
    ThisWorkbook.Saved = True 
End Sub 

Ou modifier votre syntaxe pour

ActiveWorkbook.Close savechanges:=False 

Notez le côlon!

+0

Je vais essayer le truc .saved. J'ouvre et ferme un non. des classeurs et j'ai déjà essayé d'ajouter 'Savechanges: = False' ou 'False' qui ne fonctionne pas – user6879637

0

J'aime cette réponse fournie par Francis Dean dans un article précédent sur le même sujet car elle informe réellement l'utilisateur que le wb ne sera pas sauvegardé. Cependant, pour que cette solution fonctionne, vous devez l'enregistrer dans le mode VBA Design.

Un autre grand avantage de cette solution est même lorsque l'utilisateur utilise CTRL + S (sans appel tout événement close)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 

    Cancel = True 

End Sub 

How to Disable Save and Save As using VBA

+0

Cela semble être une idée raisonnable mais j'ouvre et ferme beaucoup de classeurs, donc le msgbox va probablement ennuyer l'utilisateur plus que cela aidera. – user6879637

+0

J'ai édité ma réponse à votre besoin –