fermeture d'excel

A

aragorn

Guest
Bonjour a tous

je souhaite a la fermeture du fichier excel qu'une boite de dialogue de type 'vbyesnocancel' avec le texte 'voulez vous faire une copie sur disquette ? s'ouvre.
si l'utilisateur valide oui
1 enregistre le fichier
2 fait une copie de sauvegarde sous A:
3 enleve tout les msg d'excel (voulez vous enregistrer les modifs)
4 Quite l'application
si l'utilisateur valide non
1 enregistre le fichier
3 enleve tout les msg d'excel (voulez vous enregistrer les modifs)
4 Quite l'application
si l'utilisateur valide cancel
1 la boite se ferme
2 on revient sur le fichier

j'ai une vague idée de la fonction à utiliser workbookbeforeclose
mais quand je le fais c'est macao des que je valide il me reaffiche la boite de dialogue.

j'ai besoin de votre aide

merci d'avance
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Aragorn, bonsoir le forum,

Je te propose cette macro événementielle à placer dans le composant ThisWorkbook de ton projet dans VBE :


Option Explicit 'oblige à déclarer toutes les variables

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim a As Byte 'déclare la variable a
Dim C As Workbook 'déclare la variable C
Dim N As String 'déclare la variable N

Set C = ThisWorkbook 'définit la variable C
N = C.Name 'de'finit la variable N
'définit la variable a
a = MsgBox('Voulez vous faire une copie sur disquette ?', vbYesNoCancel, 'Attention !')

'condition : si 'Oui'
If a = vbYes Then
C.Save 'sauve le fichier
C.SaveAs ('A:\\\\\\\\' & N) 'copie de sauvegarde dans A:
Application.Quit 'ferme l'application
ElseIf a = vbNo Then 'si 'Non'
C.Save 'sauve le fichier
Application.Quit 'ferme l'application
ElseIf a = vbCancel Then 'si 'Annuler'
Cancel = True 'empêche la fermeture du fichier
End If
End Sub

Tiens-moi au courant si ça va pas (si ça va aussi d'ailleurrs).[/b]

Message édité par: Robert, à: 28/09/2005 21:07
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir aragorn, Robert,

Comme j'étais également en train de travailler sur le sujet...je joins quand même ma proposition :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
      With ThisWorkbook
            Select Case MsgBox('Voulez vous faire une copie sur disquette ?', vbYesNoCancel)
            Case vbYes
                  .SaveCopyAs 'A:\' & .Name
                  .Save
            Case vbNo
                  .Save
            Case Else
                  Cancel = True
            End Select
      End With
End Sub
Cordialement,
 
A

Aragorn

Guest
Bonjour Didier

J'ai testé ta procedure et ca marche du feu de dieu.

Un autre membre Robert m'a aussi envoyé un procedure du meme type qui marche super.

je n'ai donc que l'embarras du choix et je vous en remercie tous les deux.

A une prochaine et Merci encore

Aragorn
 

Discussions similaires

Réponses
6
Affichages
488

Statistiques des forums

Discussions
312 231
Messages
2 086 438
Membres
103 209
dernier inscrit
MIKA33260