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
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!
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
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
J'ai édité ma réponse à votre besoin –
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