Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

audreync

XLDnaute Nouveau
Bonjour à tous,

Je suis nouvelle sur ce forum et novice en macro sur VBA. J'ai tout essayé avant de vous écrire (créer ou copier des macros) mais je n'y arrive pas....
J'aimerai créer une macro pour qu'à chaque création de ligne, un mail soit envoyé automatiquement à l'agent nommé en colonne I et à son adresse mail est en colonne R

Avec un texte bateau du genre

"Bonjour [Agent 1 (colonne I)]

Suite à un(e) [ Type (colonne A)]
Vous avez une nouvelle action HSE :[ Texte (colonne G)]

....................................."

Je vous met un extrait du fichier ou je créer les lignes.

Par avance, merci de vos réponses.
 

Pièces jointes

  • SUIVI ACTIONS HSE MN.xlsm
    179.9 KB · Affichages: 703
  • SUIVI ACTIONS HSE MN.xlsm
    179.9 KB · Affichages: 838
  • SUIVI ACTIONS HSE MN.xlsm
    179.9 KB · Affichages: 891

adel53

XLDnaute Occasionnel
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Bonjour

Alors pour le code étant donné que le mail est généré à la validation et que les données ajoutées sont à la fin de la page je fais une recherche de la dernière ligne en utilisant dlg = Sheets("FCA INTERNE").Range("B500").End(xlUp).Row
ensuite je sais que l'adresse mail se trouve à la colonne numéro 7 donc cells(dlg ,7) me retourne la valeur correspondant à la ligne numéro dlg( Dernière ligne) et la colonne 7
ensuite c'est la génération du mail
le .display sert à afficher le mail si tu souhaites l'envoyer automatiquement il faut le remplacer .send

Cordialement
 

audreync

XLDnaute Nouveau
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Bonjour notorious,

Quand tu as collé la première macro, as-tu pensé à recréer le raccourci ctrl+m? Moi c'est pour ça au départ que je ne recevai pas le mail.

Bnne soirée
 

Notorious

XLDnaute Nouveau
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Bonjour adel53, bonjour audreync !

Merci pour toutes les infos adel, elles me seront très très utiles.!
Comme tu le précisais, tu fais une recherche de la dernière ligne en utilisant dlg = Sheets("FCA INTERNE").Range("B500").End(xlUp).Row
Cependant, si je veux faire une recherche d'une ligne précise, en fonction de mon numéro de feuille réclamation (colonne A), qui change a chaque réclamation..

faudrait il faire une formule comme suivant ?
dlg = Sheets("FCA INTERNE").Range("B500").numFCA.value.Row

Je demande cela car lorsqu'une réclamation est instruite un mail est envoyé (ce que nous venons de réaliser). Toujours a la dernière ligne car cela ne change pas. Cependant, lorsqu'on répond a cette réclamation (bouton rose), l'on peut aujourd'hui répondre à la réclamation 1, 3, 56... Sans se soucier de "dernière ligne". (je ne sais pas si je m'explique bien)

Autrement ca fonctionne.. SUPER ! :D Je crois que je ne te remercierai jamais assez.
Merci ! (comme je vous le disais, un baobab dans le pied ca fait mal...) Pour info, je suis apprenti et je présente mon fichier dans 2 heures à ma directrice.. *tousse*.
 

adel53

XLDnaute Occasionnel
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Bon courage pour la présentation;
Nous pouvons utiliser la même procédure qu'audrey pour envoyer le mail sur une ligne précise il faut juste faire une petite adaptation
 

Notorious

XLDnaute Nouveau
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

La présentation s'est super bien passée ! :D et c'est en grande partie grâce à toi !
d'accord d'accord, donc si je reprend le code d'audrey...

Sub mail()
Dim i As Integer
Dim ol As Object, olmail As Object
Set ol = CreateObject("Outlook.Application")
Set olmail = ol.Application.CreateItem(olMailItem)

With olmail
i = ActiveCell.Row
.To = Cells(i, 18)
.Subject = "Action HSE "
.HTMLBody = "Bonjour " & Cells(i, 9) & ",<br/><br/> Suite à " & Cells(i, 1) & ", vous avez une nouvelle action HSE : " & Cells(i, 7) & vbCrLf & " .<br/><br/>Cordialement."
.Display
End With

End Sub

Il faudrait que je modifie i en appelant i = (numFCA.value).value.cells.row ?
Je pense avoir la bonne réponse mais peut tu confirmer?
 

adel53

XLDnaute Occasionnel
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

félicitations. Pour la suite je pense qu'il suffit de faire i = numFCA.value.
Après il faut modifier le mail je ne pense pas que tu souhaites envoyer le même mail pour les deux actions.
Tiens moi au courant si ça marche
 

Notorious

XLDnaute Nouveau
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

D'accord je vais essayer, je te redis rapidement.
Je met cette formule dans un module ou bien dans le Userform qui m'interesse ? Je ne saisi pas bien la différence en fait
 

adel53

XLDnaute Occasionnel
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Pour que le mail soit généré à la validation il faudrait que tu lies le code au bouton valider.
Le module sert à écrire un code qui pourra concerné un onglet dans ton fichier ou l'ensemble des onglets.
 

Notorious

XLDnaute Nouveau
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Un truc du genre..? En fait numFCA.value réfère à la colonne A, il faudrait que excel retrouve la bonne valeur des autres informations nécessaires à l'envoi du mail, en fonction du N° de FCA que j'ai instruit..

Dim i As Integer
Dim ol As Object, olmail As Object
Set ol = CreateObject("Outlook.Application")
Set olmail = ol.Application.CreateItem(olMailItem)


With olmail
i = NumFCA.Value
.To = Cells(i, 7)
.Subject = "Action HSE "
.HTMLBody = "Bonjour " & Cells(i, 3) & ",<br/><br/> Suite à " & Cells(i, 1) & ", vous avez une nouvelle action HSE : " & Cells(i, 10) & vbCrLf & " .<br/><br/>Cordialement."
.Display
End With


Pour le moment je me préoccupe de la ligne en rouge (la première à faire référence a i et l'endroit où le trouver)
je ne suis pas sûr que numFCA.value convienne au final, car même si la boîte d'envoi de mail s'ouvre bien, elle ne m'indique pas d'adresse mail (située la même ligne que mon numFCA choisi (= i), colonne 7)

Hmm.. je réfléchi encore sur le sujet mais si tu as des suggestions je suis preneur!
 

adel53

XLDnaute Occasionnel
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

J'avais raison avec le même code ça fonctionne correctement
 

Pièces jointes

  • projet envoi de mail notorious.xls
    246 KB · Affichages: 88
  • projet envoi de mail notorious.xls
    246 KB · Affichages: 139
  • projet envoi de mail notorious.xls
    246 KB · Affichages: 141

Notorious

XLDnaute Nouveau
Re : Créer une macro pour envoyer un mail avec excel 2010 à chaque création de ligne

Je viens de l'associer à mon fichier et cela m'a l'air de fonctionner correctement..! :
Je pense que je ne te remercierai jamais assez, en tous cas, un gros gros merci !
Bonne continuation et à bientôt sur le forum :D

Merci
Notorious
 

Discussions similaires

Statistiques des forums

Discussions
312 220
Messages
2 086 376
Membres
103 198
dernier inscrit
CACCIATORE