Excel ferme toutes les fenêtre sur Workbooks(Classeur1.xlsm
Petit souci: avec le code qui suit, à Workbooks("Classeur1.xlsm").Close SaveChanges:=False ferme Excel et tous les fichiers qui sont ouverts. Merci de m'aider. (marche bien si seulement ce fichier d'ouvert mais ferme tous les fichiers xls ouverts et quitte excel)
Dan
CODE complet:
Public changed As Boolean
Public quitwithoutsave As Boolean
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ActiveWorkbook.Saved = False Then
changed = True
Else
MsgBox "Non"
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
If quitwithoutsave = False Then
If ActiveWorkbook.Saved = False Then
If MsgBox("Do you want to save and exit?", vbYesNo) = vbYes Then
ThisWorkbook.Save
SendMail2
Else
If changed = True Then
SendMail2
End If
End If
Else
If changed = True Then
SendMail2
End If
End If
quitwithoutsave = True
Workbooks("Classeur1.xlsm").Close SaveChanges:=False
Application.DisplayAlerts = True
End If
End Sub
Private Sub SendMail2()
Dim path As String
'Application.DisplayAlerts = False
path = "G:\DPEIT-DGIC-DR-Gestion\Horaire de prestation de service\Horaire de Prestation de Service à la DR.xlsx"
'filename = "Rapport incidents et problèmes du " & Format(datedujour, "dd.mm.yyyy hh.mm") & ".xlsx"
Email_Send_To = "daniel.bussieres@cspq.gouv.qc.ca"
'Email_Cc = "patrick.ricaud@cspq.gouv.qc.ca"
Email_Bcc = ""
Email_Subject = "Modification dans le fichier Horaire de Prestation de Service à la DR"
Email_Body = "SVP prendre connaissance du ducument joint."
Set Mail_Object = CreateObject("Outlook.Application")
Set Mail_Single = Mail_Object.CreateItem(0)
With Mail_Single
.Subject = Email_Subject
.To = Email_Send_To
.cc = Email_Cc
.BCC = Email_Bcc
.Body = Email_Body
.Attachments.Add path
.Send
End With
Set Mail_Object = Nothing
Set Mail_Single = Nothing
'ActiveWorkbook.Close savechanges:=True
'Application.DisplayAlerts = False
End Sub
Bonjour et
Je ne comprends pas très bien ce que tu veux faire dans ta procédure
Workbook_BeforeClose()A+
C'est simple: je veux vérifier avant de fermer s'il y a eu des changements dans le fichier depuis son ouverture (même si la personne l'a sauvé en cliquant sur la disquette). S'il y a eu des changement : envoi de courriel; si non, pas de sauvegarde et pas de courriel.
Merci
Dan