Fermer Excel sans sauvegarder le classeur

AlDraw

XLDnaute Nouveau
J'ai réalisé une application qui permet à un utilisateur de remplir une feuille de données par l'intermédiaire d'un USERForm. Elle prévoit l'exportation du travail de saisie dans un autre classeur.
Je souhaite garder vierge mon classeur Apllication. J'ai réussi si l'utilisateur ferme par le bouton de commande que j'ai créé, idem s'il ferme le classeur par le bouton Excel (X) mais s'il utilise le menu "Fichier" "enregistrer" ça coince.
Cette action lance bien ma procédure de fermeture qui prévoit une boîte de dialogue qui avertit l'utilisateur qu'il doit d'abord sauvegarder ses données (par le masque de saisie de mon application). S'il répond qu'il a sauvegardé alors Excel se ferme sans enregistrer mais s'il répond NON, bizarrement, Excel ne se ferme pas ce qui est normal mais ???? il enregistre les modifications.
Que faire ?
Merci
AlDraw
 

Kobaya

XLDnaute Occasionnel
Re : Fermer Excel sans sauvegarder le classeur

bonjour AlDraw,

la première des choses à faire, sur n'importe quel forum, c'est d'user d'une petite formule de politesse : bonjour, hello, salut, hi, coucou, etc. il y a le choix. Ceci étant dit, bienvenu sur ce forum :)

Tu peux mettre ton code ici, ça sera plus simple ?
 

AlDraw

XLDnaute Nouveau
Re : Fermer Excel sans sauvegarder le classeur

Bonsoir Kobaya,
Merci de me répondre. OK pour le bonjour oublié je ne recommencerai plus !
Voici mon code :
Public Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repp As Integer
Repp = MsgBox("Avez-vous sauvegardé vos données ?", vbQuestion + vbYesNo, strAppName)
If Repp = vbYes Then
ThisWorkbook.Saved = True
ThisWorkbook.Close saveChanges:=False
Else
ThisWorkbook.Saved = True
Cancel = True
Exit Sub
End If
End Sub

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
Cancel = True
End If
ThisWorkbook.Close
End Sub

Qu'en penses-tu ?
Merci
AlDraw
 

Gorfael

XLDnaute Barbatruc
Re : Fermer Excel sans sauvegarder le classeur

AlDraw à dit:
Bonsoir Kobaya,
Merci de me répondre. OK pour le bonjour oublié je ne recommencerai plus !
Voici mon code :
Public Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Repp As Integer
Repp = MsgBox("Avez-vous sauvegardé vos données ?", vbQuestion + vbYesNo, strAppName)
If Repp = vbYes Then
ThisWorkbook.Saved = True
ThisWorkbook.Close saveChanges:=False
Else
ThisWorkbook.Saved = True
Cancel = True
Exit Sub
End If
End Sub

Public Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI Then
Cancel = True
End If
ThisWorkbook.Close
End Sub

Qu'en penses-tu ?
Merci
AlDraw
Salut
Dans une macro Workbook_BeforeClose, pour empêcher la fermeture la fermeture du classeur, il suffit de mettre Cancel à True :)

A+
 

Discussions similaires

Réponses
22
Affichages
604

Statistiques des forums

Discussions
311 720
Messages
2 081 886
Membres
101 830
dernier inscrit
sonia poulaert