XL 2010 Créer un mail avec VBA en y ajoutant texte personnalisé + données Excel

etoiledu88

XLDnaute Nouveau
Bonjour,

Je n'ai aucune connaissance en VBA et je dois créer un mail à partir de Excel (ce que j'ai réussi à faire tant bien que mal à partir d'informations sur Internet).

Maintenant, cela se complique car je dois dans le corps du mail y ajouter un texte en y insérant une valeur de cellule du fichier Excel ainsi qu'un graphique. et comme je ne connais pas du tout ce langage ....

Le type de mail serait de ce format là :
"Bonjour à tous, voici le récapitulatif mensuel pour le mois de janvier 2017.


Récapitulatif : MAI 2017, Cellule E24 au total (B24 en cat et C24 en car, D24 en var)

Tableau + à droite graphique


Au 31/12/2017 = celluleX au total dont celluleX en cat, celluleX en car, celluleX en var
Au 31/12/2016 = celluleY au total dont celluleY en cat, celluleY en car, celluleY en var
(différence) (différence) (différence) (différence)

Différence = celluleX - celluleY (si possible)


J'ai mis en PJ le type de tableau et graphique que j'aurai sachant que ceux-ci seront sur des plages fixes.

Je vous remercie pour votre aide ...
 

Pièces jointes

  • test2.xlsm
    26 KB · Affichages: 29

herve62

XLDnaute Barbatruc
Supporter XLD
Dernière édition:

Roland_M

XLDnaute Barbatruc
Bonjour tout le monde,

voir ci-joint ta feuille dans un de mes classeurs qui sert à envoyer des mails avec ou sans pièce jointe
ainsi que la possibilité d'envoyer une feuille dans ce même classeur !

j'y ai mis ta feuille sous le nom "Recapitulatif" que tu peux renommer

sur la feuille MENU tu remplis les paramètres pour envoyer
et tu sélectionnes avec le bouton "Sélectionner une feuille pour envoyer ..."
il y aura le choix d'envoyer dans le corps du message ou en pièce jointe !
s'il y a des objets, genre graphique ou image, il faudra choisir en pièce jointe !

il y a un commentaire dans la cellule haut gauche (A1)
 

Pièces jointes

  • EnvoiMail_CdoMsgEtoile88.xlsm
    118.8 KB · Affichages: 40
Dernière édition:

etoiledu88

XLDnaute Nouveau
Ce ne sont pas des adresses de type
hotmail.com / hotmail.fr /
outlook.com / outlook.fr, mais des adresse de type @xx-yyy.fr

Quand j'essaie de lancer en mettant
Nom Serveur SMTP (voir feuil.Infos) * smtp-mail.outlook.com
No Port (SMTPServerPort)voir Infos !? 25

ça me met le message d'erreur ci-joint
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    22.4 KB · Affichages: 33

etoiledu88

XLDnaute Nouveau
ok, pour la sécurité.

Maintenant j'ai ce message, surement du parce que ce n'est pas avec une adresse de type orange etc
un moyen de outre passé cela ?

J'avais trouvé un code qui m'ouvrait outlook avec le mail à l'intérieur, je pense qu'il faut que je fasse ça, mais comme je n'y connais rien en VBA... ça me parait compliquer de combiner votre code et l'autre.
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    19.2 KB · Affichages: 23

Roland_M

XLDnaute Barbatruc
re

je récapitule tout de même.
mon classeur n'intervient pas sur outlook, tu oublies ça !

le code cdo c'est pour se passer d'outlook qui n'est qu'un logiciel de messagerie !
ensuite il te faut bien envoyer tes messages !?
et pour cela tu as bien un fournisseur d'accès internet, c'est ça les paramètres !

c'est dans ce classeur que tu mets tes adresses expéditeur et destinataires
puis le message, classeur joint . . . .
comme tu le ferais dans un logiciel de messagerie comme outlook,
sinon ça n'a aucun intérêt !

maintenant concernant les comptes outlook je ne connais pas !?
et je ne peux pas faire d'essais !

adresse messagerie:
outlook.com / outlook.fr
hotmail.com / hotmail.fr /
serveur sortie: smtp-mail.outlook.com
no port 25
sécurisé TLS (je dois voir dans le code)
avec mot de passe de connexion

mais j'ai pas cette config dans mon classeur, je vais y regarder !
mais je n'ai jamais vu cette config !?
si qq à de plus amples infos à ce sujet je suis preneur.
 
Dernière édition:

etoiledu88

XLDnaute Nouveau
Oui, en gros je veux envoyer un mail à partir d'Excel car il me récupère un tableau, un graphique et des valeurs dans les cellules.
Si j'ai bien compris avec l'option display ça m'ouvre Outlook sans envoyer le mail. Mais comme ça ouvre Outlook ça fonctionne.
Voici ce que j'aimerai obtenir dans mon mail sur Outlook.

Avec le fichier joint, j'ai réussi à mettre un tableau et un petit texte mais pas comme je voudrai grâce au tutoriel : http://maitrise-excel.com/excel-outlook-envoi-mail-macro-excel-envoi-email-tableau-corps-du-message/

Download.html
 

Pièces jointes

  • test4.xlsm
    22.1 KB · Affichages: 28

Roland_M

XLDnaute Barbatruc
re

j'ai bien ce genre de code, (que je ne peux essayer)
sensé ouvrir outlook(comme tu le souhaites) avec les paramètres mis dans la routine
qui crée un classeur avec la feuille sauvegardée pour pièce jointe

bien entendu il faut une feuille de lancement comme dans mon classeur(MENU)
avec les paramètres sur cellules !

Code:
Private Sub EnvoiMailOutlookAvecFeuilJointe()
Dim OutApp As Object, OutMail As Object, NewB As Workbook
'---- variables nécessaire -------------
NomDuClasseur$ = "NomDuFichierJoint.xls" ' avec son extension
NomDeLaFeuille$ = "Feuil1"
AdresDestinMail$ = "nom@site.fr"
AdresMailCC$ = "nom@site.fr"
AdresMailBCC$ = "nom@site.fr"
Sujet$ = ""
Message$ = ""
'---------------------------------------

' Copie la feuille (ce qui cré un nouveau classeur qui devient actif)
CheminFichier$ = ThisWorkbook.Path & "\" & NomDuClasseur$ 'ajoute le chemin
Sheets(NomDeLaFeuille$).Copy
Set NewB = ActiveWorkbook
ActiveWorkbook.SaveAs CheminFichier$
On Error GoTo ErreurNET ' ENVOI
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = AdresDestinMail$
.CC = AdresMailCC$
.BCC = AdresMailBCC$
.Subject = Sujet$
.Body = Message$
.Attachments.Add NewB.FullName
'.Send '<<<<<<<< Pour envoyer directement
.Display '<<<<<< Pour voir le mail avant envoi
'^^^^^^^ après .Display pour confirmation auto > SendKeys "^{ENTER}"
End With
' close le classeur et le supprime du disque
ActiveWorkbook.Close
Kill CheminFichier$
' fin
Set OutApp = Nothing: Set OutMail = Nothing: Set NewB = Nothing
On Error GoTo 0: Err.Clear: Exit Sub
ErreurNET: 'sous prog erreur
Msg$ = "Erreur " & Err.Source & "  No " & Err.Number & vbLf & vbLf & Err.Description
T$ = "Envoi Mail: Problème de connexion !?"
MsgBox Msg$, vbCritical, T$, Err.HelpFile, Err.HelpContext
On Error GoTo 0: Err.Clear
End Sub

des codes comme ceci j'en ai d'autres !
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo