Bonjour à tous,
Je vous expose rapidement mon problème, j'ai déjà un code VBA qui fonctionne très bien, à savoir que lorsqu'il y a une modification enregistrée sur le document excel, lors de la fermeture de celui-ci un mail est généré pour me prévenir qu'une modification a été apportée. Seulement, ce code marche seulement si outlook est déjà ouvert sur l'ordinateur, si ce n'est pas le cas un message d'erreur s'affiche. Je me demandais donc ce que je devais rajouter à mon code pour qu'il puisse ouvrir outlook si ce n'est pas le cas avant de générer le mail.
En sachant que j'ai déjà activé la référence outlook dans VBA mais rien n'y fait, je vous envoie le code que j'utilise actuellement.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' Avant de ferme le classeur, on vérifie si modification effectuée
If FlgModif Then
Dim OutApp As Object, EMail As Object
' Création d'une instance Outlook pour envoyer un mail
Set OutApp = CreateObject("Outlook.Application")
Set EMail = OutApp.CreateItem(0)
With EMail
.To = "test@test.com"
.Subject = "Modification apportée"
.Body = "Modification effectuée" & Environ("suername")
.Send
End With
Set EMail = Nothing: Set OutApp = Nothing
End If
End Sub
Private Sub Workbook_Open()
' On vient d'ouvrir le classeur, le FLAG modification est donc FAUX
FlgModif = False
End Sub
' Si modification effectuée dans une des feuilles, on passe le FLAG à VRAI
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
FlgModif = True
End Sub
Merci d'avance pour vos réponses,