Microsoft 365 Mail envoi automatique avec texte

Usine à gaz

XLDnaute Barbatruc
Bonsoir à toutes et à tous,
Je vous souhaite un bon WE :)

Me revoilà devant nos ténors pour un souci de "Mail envoi automatique avec texte"
J'ai pas mal avancé sur le sujet mais je n'arrive pas à terminer :

Besoin : Si en Cellule D6, je sélectionne "Abonnement mensuel," ou "Abonnement annuel,"
Je voudrais qu'un mail soit envoyé à l'adresse en Cellule H6 avec le contenu de la cellule F6

Je joins le fichier test,
Un grand merci par avance,
lionel :)
 

Pièces jointes

  • envoi mail.xlsm
    58.9 KB · Affichages: 8
Dernière édition:
Solution
Re

Imaginons que dans Outlook (en plus de mon compte par défaut j'ai ajouté) mon compte Hotmail.
(voir moult tutos sur le web pour ce faire)
Imaginons que je sois patient et que je lise religieusement les conseils qu'on me prodigue
Imaginons que je sois curieux
Maintenant qu'on a rendu hommage à John L. )
Allons faire un tour du côté d'Outlook (*) pour tester ce que Lionel aurait pu trouver depuis le message#4
(puisque le lien était donné par Kiki29)

(*) non je ne vais pas rendre hommage à Dave en plus ;)
(quoique 2022, c'est l'année Proust)
Ci-dessous code issu des pages de RDB
Enrichi (BBcode):
Sub Mail_small_Text_Change_Account()
'Only working in Office 2007 and higher
'Don't forget to set a reference to Outlook in the VBA editor...

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour :)
Je ne m'en sors toujours pas Grrrr !!! :mad:
Sur les conseils de dysorthographie, j'ai pris ce code :
VB:
Sub test()
MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""
End Sub
Public Sub MailEnvoi(Serveur, Identify, User, PassWord, Port, Delay, Expediteur, Dest, DestEnCopy, Objet, Body, Pj)
' sub pour envoyer les mails
Dim msg
Dim Conf
Dim Config
Dim ess
Dim splitPj
Dim IsplitPj
Set msg = CreateObject("CDO.Message") 'pour la configuration du message
Set Conf = CreateObject("CDO.Configuration") '  pour la configuration de l'envoi
Dim strHTML

Set Config = Conf.Fields

' Configuration des parametres d'envoi
'(SMTP - Identification - SSL - Password - Nom Utilisateur - Adresse messagerie)
With Config
If Identify = True Then
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = User
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = PassWord
End If
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Port
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = Delay
    .Update

End With


'Configuration du message
'If E_mail.Sign.Value = Checked Then Convert ServeurFrm.SignTXT, ServeurFrm.Text1

With msg
    Set .Configuration = Conf
    .To = Dest
  .cc = DestEnCopy
    .FROM = Expediteur
    .Subject = Objet
'

    .HTMLBody = Body '"<p align=""center""><font face=""Verdana"" size=""1"" color=""#9224FF""><b><br><font face=""Comic Sans MS"" size=""5"" color=""#FF0000""></b><i>" & body & "</i></font> " 'E_mail.ZThtml.Text
            If Pj <> "" Then
        splitPj = Split(Pj & ";", ";")

        For IsplitPj = 0 To UBound(splitPj)
            If Trim("" & splitPj(IsplitPj)) <> "" Then
                .AddAttachment Trim("" & splitPj(IsplitPj))
            End If
        Next

    End If
    .Send 'envoi du message

End With
' reinitialisation des variables
Set msg = Nothing
Set Conf = Nothing
Set Config = Nothing

End Sub

J'ai modifié cette ligne :
Code:
MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""

Comme suit en supposant que :
MailEnvoi "smtp.googlemail.com", True, "My.Mail@gmail.com", "Pasw", 465, 10, "My.Mail@gmail.com", "Vous.Mail@gmail.com", "Copy@gmail.com", "Suivi des modifications.", "tel truc a été modifile", ""

- MailEnvoi "smtp.googlemail.com", = "smtp.live.com" pour hotmail.com
- "My.Mail@gmail.com", "Pasw", = "lio@hotmail.com",
- "My.Mail@gmail.com", = "lio@hotmail.com",
- "Copy@gmail.com" = "autre@gmail.com" mail en copy

J'ai du me planter car ça beug !
je joins le fichier en cas :)
Je ne trouve pas,
lionel :)
 

Pièces jointes

  • envoi mail.xlsm
    70.2 KB · Affichages: 1

Usine à gaz

XLDnaute Barbatruc
Re....
Bon sang ! pas moyen de faire marcher ce truc :mad: :mad: :mad: :mad: :mad:
Voici le code :
VB:
Sub Test()
Mail "Sujet", "Message", "lio@hotmail.fr", DestinataireCopy:="lio@hotmail.fr"
End Sub

Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
Set objOutlook = CreateObject("Outlook.application")
Set MailObj = objOutlook.CreateItem(olMailItem)
With MailObj
    .To = Destinataire
    .CC = DestinataireCopy
    .Subject = "message de lionel"
    .Body = [f6].Value
    .Send
End With
End Sub

- Je ne vois pas où indiquer ma boite d'envoi : TrucMuche@hotmail.com
- je ne reçois rien sur ma boite de réception : lio@hotmail.fr
Et donc : Il ne se passe rien ??? vraiment je ne sais plus où chercher ...

En cas, je joins le fichier,
Le code d'origine est dans la feuille "developpez.net"
lionel :)
 

Pièces jointes

  • envoi mail.xlsm
    72.2 KB · Affichages: 0

Staple1600

XLDnaute Barbatruc
Déjà faut être cohérent un tant soit peux (même un dimanche ;))
Enrichi (BBcode):
Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
Set objOutlook = CreateObject("Outlook.application")
Set MailObj = objOutlook.CreateItem(olMailItem)
With MailObj
    .To = Destinataire
    .CC = DestinataireCopy
    .Subject = Sujet
    .Body =Message
    .Send
End With
End Sub
C'est quand tu appelles ta macro Mail que tu renseignes ces "champs"
VB:
Sub Test()
Mail "abc", range("F6").Text,"toto@titi.fr","popo@pipi.fr"
End Sub
 

Usine à gaz

XLDnaute Barbatruc
Pourtant, avec le code en module1 :

VB:
Sub envoi()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.MailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Set olItem = olApp.CreateItem(olMailItem)
With olItem
.To = "lio@hotmail.fr" 'destinataire
.Subject = "message de lionel"
.Body = [f6].Value
.Display
'.Save
.Send
End With
Set olItem = Nothing
Set olApp = Nothing
End Sub
J'y suis presque, hotmail.com est bien ouvert. Sauf qu'il n'ouvre pas ma boite pas sur ma boite mail pour envoyer.
lionel :)
 

Usine à gaz

XLDnaute Barbatruc
Pourtant, avec le code en module1 :

VB:
Sub envoi()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.MailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Set olItem = olApp.CreateItem(olMailItem)
With olItem
.To = "lio@hotmail.fr" 'destinataire
.Subject = "message de lionel"
.Body = [f6].Value
.Display
'.Save
.Send
End With
Set olItem = Nothing
Set olApp = Nothing
End Sub
J'y suis presque, hotmail.com est bien ouvert. Sauf qu'il n'ouvre pas ma boit pas sur ma boite mail pour envoyer.
lionel :)
 

Usine à gaz

XLDnaute Barbatruc
Arrête de discuter !

Ta macro dans le message#20 est une macro paramétrée !

Ce qui est change la donne.

As-tu au moins testé ce que j'ai écris ?
Merci JM d'être là ... je galère dur :mad:
J'ai tenté ces codes :
VB:
Sub Test()
Mail "Sujet", "Message", "lio@hotmail.fr", DestinataireCopy:="lio@hotmail.fr"
End Sub

Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
Set objOutlook = CreateObject("Outlook.application")
Set MailObj = objOutlook.CreateItem(olMailItem)
With MailObj
    .To = Destinataire
    .CC = DestinataireCopy
    .Subject = "message de lionel"
    .Body = [f6].Value
    .Send
End With
End Sub
Mais ça ne fonctionne pas car je ne sais pas comment lui dire d'ouvrir ma boite mail d'envoi ; TrucMuche@hotmail.com
Grrrr !!!:
 

Staple1600

XLDnaute Barbatruc
Bonjour Marcel

Moi j'abandonne !

J'avais écrit dans le message#21
Enrichi (BBcode):
Sub Mail(Sujet As String, Message As String, Destinataire As String, Optional DestinataireCopy As String, Optional DestinataireCopyCacher As String, Optional Pj As String = "")
Set objOutlook = CreateObject("Outlook.application")
Set MailObj = objOutlook.CreateItem(olMailItem)
With MailObj
    .To = Destinataire
    .CC = DestinataireCopy
    .Subject = Sujet
    .Body =Message
    .Send
End With
End Sub
Puis
C'est quand tu appelles ta macro Mail que tu renseignes ces "champs"
Code:
Sub Test()
Mail "abc", range("F6").Text,"toto@titi.fr","popo@pipi.fr"
End Sub
Et que lit--on dans le message#25 !
:rolleyes:

Désespérant à la longue
 

TooFatBoy

XLDnaute Barbatruc
Ma boite mail d'envoi : TrucMachin@hotmail.com est ouverte en permanence
Je ne vois pas le rapport...

Bon, je laisse les autres t'aider car moi je n'ai aucune boîte mail paramétrée sur mon PC, donc je ne peux visiblement pas faire de tests jusqu'au bout puisque quand je clique sur une cellule en "mailto..." Excel veut me faire paramétrer un compte mail...😡
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
340
Compte Supprimé 979
C
Réponses
6
Affichages
611
Réponses
17
Affichages
2 K
Réponses
22
Affichages
3 K

Statistiques des forums

Discussions
315 088
Messages
2 116 088
Membres
112 656
dernier inscrit
VNVT