Macro excel envoi de mail avec le contenu d'une cellule en corps de texte [Résolu]

Signaler
Messages postés
2
Date d'inscription
vendredi 19 juin 2020
Statut
Membre
Dernière intervention
19 juin 2020
-
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
-
Bonjour,

Je poste mon premier message sur ce forum car je suis nouveau en utilisation de macro sur excel et j'essaye de m'en sortir le mieux que je peux mais c'est compliqué


Alors mon problème c'est que je n'arrive pas à mettre une condition sur l'envoi du mail, en fait j'ai un bouton qui envoi un mail à la fin de chaque ligne sur mon tableau, je souhaite rajouté le contenu d'une cellule en plus du "Body", j'ai utilisé la fonction Range et ça marche juste pour ma première ligne ^^ en gros je veux que si on click sur le bouton en "O2", le contenu de la cellule "P2" s'affiche dans le body du mail, et la même pour "O3/P3", "O4/P4"...

Sub Email_From_Excel()


Dim emailApplication As Object
Dim emailItem As Object

Set emailApplication = CreateObject("Outlook.Application")
Set emailItem = emailApplication.CreateItem(0)

.To = " xxxx@yyyy"

.Subject = "Changement de limites"

.Body = "Le message de mail" & Worksheets ("Outil"). Range (P2)

.Display

End Sub



je suis stagiaire et j'essaye de vraiment faire bonne impression pour avoir le job à la fin donc si quelqu'un peu m'aider ça serait vraiment génial

Désolé, je ne peux pas joindre le fichier car il est vraiment gros,

Respectueusement,

Khaled

2 réponses

Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 496
Bonjour,

Le problème réside surtout dans l'utilisation d'un bouton par ligne.
Un bouton unique "ENVOI MAIL" aurait surement été bien meilleur.
Suffisait juste de lui demander la sélection de la ligne concernée et de préparer le mail en conséquence...
Si tu es intéressé, je peux te bricoler un exemple vite fait...
Messages postés
2
Date d'inscription
vendredi 19 juin 2020
Statut
Membre
Dernière intervention
19 juin 2020

Merci de ta réponse,

Je veux bien un petit exemple, en fait je veux faire apparaître dans le corps de texte la cellule P2 lorsque il faut interveni sur la ligne 2, et P2/ ligne 3 ... , en gros c'est un outil ou les personnes devront remplir une case et appuyer sur le bonton pour envoyer le contenu, afin de savoir ou je dois intervenir.

il y a 750 lignes dans le tableaux et je voulais que ça soit le plus user friendly posible, et ne pas aller hercher le bouton à chaque fois, je pensais que à chaque case ou je mettais un bouton excel le comptera dans la cellule mais je n'ai as l'impression que c'est le cas,

je ne sais pas si je suis clair, je commences à peine d'utiliser les macros, j'aime bien et j'essai d'apprendre, mais parfois je bloque quand je n'arrive pas à utiliser le "langage".


Encore merci d'avoir répondu aussi vite,

Khaled
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 496
Alors, encore plus user friendly, le code suivant, placé dans le module de la feuille concernée, réagira au double-clic dans la colonne P...

Option Explicit

Sub Email_From_Excel(Ligne As Long)
Dim emailApplication As Object
Dim emailItem As Object

    Set emailApplication = CreateObject("Outlook.Application")
    Set emailItem = emailApplication.CreateItem(0)
    With emailItem
        .To = " xxxx@yyyy"
        .Subject = "Changement de limites"
        .Body = "Le message de mail " & Worksheets("Outil").Range("P" & Ligne).Value
        .Display
    End With
    Set emailApplication = Nothing
    Set emailItem = Nothing
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 16 Then 'si colonne P
        Email_From_Excel Target.Row
    End If
End Sub