Bonjour,
Je fais suite à mon sujet résolu (et fichier test) par SabV : https://forum.excel-pratique.com/post549916.html#p549916
Voici les codes :
> Feuil1
Private Sub Worksheet_Change(ByVal Target As Range)
Set isect = Application.Intersect(Target, Range("G:G"))
If Not isect Is Nothing Then
If Target = "X" Then Call MacroMail1(Target.Row)
End If
End Sub
> This Workbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MacroMail2
End Sub
> Module 1
Public nbr As Integer
Sub MacroMail1(rw As Long)
Dim sh
Dim sTO As String, sObjet As String, sMessage As String
Set sh = Sheets("ADAPTATION")
nbr = nbr + 1
For i = 1 To 11
m = m & sh.Cells(rw, i) & Chr(10)
Next
sTO = "adresse@domaine.com" 'detinataire TO à adapter
sObjet = "Message d'alerte "
sMessage = "MESSAGE D'ALERTE POUR LE: " & m 'numero de commande
Envoyer_Mail_Outlook sTO, sObjet, sMessage
End Sub
Function Envoyer_Mail_Outlook(destTO As String, objet As String, message As String)
'Nécessite d'activer la référence "Microsoft Outlook Library"
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim Nom_Fichier As String
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
Nom_Fichier = fich
If objet = "" Then Exit Function
With oBjMail
.To = destTO
.Subject = objet
.Body = message
' .Display ' vérification avant d'envoyer
.Send 'envoi du message
End With
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Function
Sub MacroMail2()
Dim sh
Dim sTO As String, sObjet As String, sMessage As String
sTO = "adresse@domaine.com" 'detinataire TO à adapter
sObjet = "Message d'alerte "
sMessage = Date & " nombre d'alerte envoyé: " & nbr
Envoyer_Mail_Outlook sTO, sObjet, sMessage
nbr = 0
End Sub
Le code en lui-même fonctionne très bien lorsqu'on met un "X" dans une des cellules de la colonne G, une alerte est bien envoyée par mail.
Toutefois, j'ai créé une formule qui selon certaines conditions indique "X" dans les cellules de la colonne G. Lorsque c'est la formule qui place un "X" l'envoi du mail ne se fait pas. Que faudrait-il modifier dans le code pour que l'envoi se fasse ?
Bien cordialement,
Baptiste.