Indiquer le contenu de la cellule modifiée dans l'email

Bonjour,

La macro qui envoie un courriel à chaque fois qu'une colonne est modifiée fonctionne:

Dans ma feuil:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Target.Column = 1 Then

EnvoiMail

End If

End Sub

Dans module1:

Sub EnvoiMail()

Dim OutApp As Object

Dim OutMail As Object

Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")

Set OutMail = OutApp.CreateItem(0)

strbody = "<font size=""3"" face=""Calibri"">" & _

"Attention une facture a été ajoutée, merci." & _

"<br><br>Cliquez sur ce lien pour ouvrir le fichier : " & _

"<A HREF=""\\xxxxx\xxxxx\xxxxx\planning.expéditions.xls" _

& """>ici</A><br><br></font>"

With OutMail

.To = "xxx@sxxxxx.com"

.CC = ""

.BCC = ""

.Subject = "Ajout d'une facture dans le planning"

.HTMLBody = strbody

.Send

End With

On Error GoTo 0

Set OutMail = Nothing

Set OutApp = Nothing

End Sub

Et je souhaiterais pouvoir indiquer le texte de la cellule modifiée dans le corps du courriel, par exemple "La facture n° ... a été ajoutée" ou simplement la ligne si c'est plus simple.

Après plusieurs échecs de mixer avec d'autres macros trouvées, je sollicite votre aide.

Merci.

Bonjour,

essaie ceci.

Dans ta feuil:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target.Column = 1 Then
 EnvoiMail(target)
 End If
 End Sub

Dans module1:

Sub EnvoiMail(cellule)
 Dim OutApp As Object
 Dim OutMail As Object
 Dim strbody As String

 Set OutApp = CreateObject("Outlook.Application")
 Set OutMail = OutApp.CreateItem(0)

 strbody = "<font size=""3"" face=""Calibri"">" & _
 "Attention la facture n° " & cellule & " a été ajoutée, merci." & _
 "<br><br>Cliquez sur ce lien pour ouvrir le fichier : " & _
 "<A HREF=""\\xxxxx\xxxxx\xxxxx\planning.expéditions.xls" _
 & """>ici</A><br><br></font>"

 With OutMail
 .To = "xxx@sxxxxx.com"
 .CC = ""
 .BCC = ""
 .Subject = "Ajout d'une facture dans le planning"
 .HTMLBody = strbody
 .Send
 End With
 On Error GoTo 0
 Set OutMail = Nothing
 Set OutApp = Nothing

End Sub

Bonjour,

Merci pour votre réponse rapide.

Malheureusement, le courriel n'est pas envoyé avec ces modifications.

Pour information;

Lorsque j’exécute la macro dans l'éditeur, un message apparait pour choisir la macro mais il n'y a en choix que celle de fermeture automatique qui est aussi dans le classeur. Avec le 1er code, je n'ai pas ce message de choix.

Il n'y a pas de message d'erreur particulier.

Si je remplace uniquement (cellule) par (0) dans Sub EnvoiMail (cellule) dans le modul1, comme dans le 1er code, le courriel part mais sans l'information sur la cellule.

Bonjour,

le mail est envoyé si le contenu d'une cellule en colonne 1 change. Faute d'avoir plus d'information, j'ai fait l'hypothèse que la colonne 1 contenait un numéro de facture. La procédure d'envoi de mail a été modifiée pour recevoir un numéro de facture en paramètre, le fait qu'il y ait un paramètre fait disparaitre la procédure de la liste des procédures exécutables.

C'est tout à fait cela, top, cela fonctionne! J'ai du effectuer un mauvais copier/coller ou une mauvaise adaptation du code.

Merci beaucoup.

Le petit plus maintenant que je le vois en fonction serait que le courriel ne soit pas envoyé lorsque la cellule est effacée. Car si la personne fait un faute de frappe et corrige après avoir appuyer sur entrer ça fait 3 courriels.

bonjour

dans module1

[code][/Sub EnvoiMail(cellule)

Dim OutApp As Object

Dim OutMail As Object

Dim strbody As String

if cellule<>"" then

Set OutApp = CreateObject("Outlook.Application")

Set OutMail = OutApp.CreateItem(0)

strbody = "<font size=""3"" face=""Calibri"">" & _

"Attention la facture n° " & cellule & " a été ajoutée, merci." & _

"<br><br>Cliquez sur ce lien pour ouvrir le fichier : " & _

"<A HREF=""\\xxxxx\xxxxx\xxxxx\planning.expéditions.xls" _

& """>ici</A><br><br></font>"

With OutMail

.To = "xxx@sxxxxx.com"

.CC = ""

.BCC = ""

.Subject = "Ajout d'une facture dans le planning"

.HTMLBody = strbody

.Send

End With

On Error GoTo 0

Set OutMail = Nothing

Set OutApp = Nothing

end if

End Sub

code]

parfait, merci.

Rechercher des sujets similaires à "indiquer contenu modifiee email"