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
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...
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
Re
J'ai trouvé un code qui fonctionne parfaitement :
VB:
Sub SendMail_Outlook()
Dim OL As Object
Dim OLmail As Object
Set OLk_Appli = CreateObject("Outlook.Application")
If OLk_Appli.Explorers.Count > 0 Then
'Ok outlook ouvert
Else
'mettre le bon chemin outlook
OLk_OK = Shell("C:\Program Files\Microsoft Office\root\Office16\outlook.EXE", vbHide)
End If
Set OL = CreateObject("Outlook.Application")
Set OLmail = OL.CreateItem(0)
With OLmail
.To = "lio@hotmail.fr" 'destinataire
.Subject = "message de lionel"
.Body = [f6].Value
'.display
.Send
End With
Set OLmail = Nothing
Set OL = Nothing
Set OLk_Appli = Nothing
End Sub
Bon sang : sauf qu'il m'ouvre Outlook alors que j'ai hotmail.com
Vous sauriez comment le diriger vers hotmail.com (qui est toujours ouvert) ?
Ce serait résolu et super !
lionel
Effectivement, c'est usant et Arthour le sait.
Il a visiblement d'énormes difficultés avec les choses du monde de la logique qui pour nous sont d'une évidente évidence.
Mais on est encore là pour essayer de le mener vers la lumière.
Seul job réussi à lui fournir des codes qui lui conviennent.
Voici un exemple
Lance TestA
Puis Appel_de_la_Macro_parametrée
Code:
Sub TestA()
MsgBox "Bonjour, Lionel", vbInformation, "Premier message"
End Sub
Sub Test_A_avec_Paramtres(Message As String, iType As VbMsgBoxStyle, Titre As String)
MsgBox Message, iType, Titre
End Sub
Sub Appel_de_la_Macro_parametrée()
Test_A_avec_Paramtres "ReBonjour Lionel", vbInformation, "Second Message"
End Sub
Tu comprends mieux comment fonctionne une macro paramétrée ?
Une fois, la macro avec paramètres créée, on n'y touche plus.
C'est une autre macro qui appelle la macro paramétrée et c'est cette autre macro qui contient les parametres
(Dans mon exemple, c'est Appel_de_la_Macro_parametrée qui contient les paramètres)
NB: Pour info, c'est toi qui a posté une macro paramétrée
(mais mal rédigée)
D'où mon message 21
Voici un exemple
Lance TestA
Puis Appel_de_la_Macro_parametrée
Code:
Sub TestA()
MsgBox "Bonjour, Lionel", vbInformation, "Premier message"
End Sub
Sub Test_A_avec_Paramtres(Message As String, iType As VbMsgBoxStyle, Titre As String)
MsgBox Message, iType, Titre
End Sub
Sub Appel_de_la_Macro_parametrée()
Test_A_avec_Paramtres "ReBonjour Lionel", vbInformation, "Second Message"
End Sub
Tu comprends mieux comment fonctionne une macro paramétrée ?
Une fois, la macro avec paramètres créée, on n'y touche plus.
C'est une autre macro qui appelle la macro paramétrée et c'est cette autre macro qui contient les parametres
(Dans mon exemple, c'est Appel_de_la_Macro_parametrée qui contient les paramètres)
NB: Pour info, c'est toi qui a posté une macro paramétrée
(mais mal rédigée)
D'où mon message 21
Merci pour tes efforts JM
Mais désolé, voilà 2 jours que je suis sur le souci et je n'arrive plus à comprendre koi que ce soit.
Si tu as le bon code en partant du mien, je te remercie de me le donner sinon, c'est moi qui laisse tomber, je ne suis plus en état.
Ben OUI, je n'ai pas Outlook et ma boite mail : TrucMachin@hotmail.comest ouverte en permanence. Le code du #post32 fonctionne très bien : sauf qu'il m'envoie sur Outlook
et j'ai besoin qu'il m'envoie sur TrucMachin@hotmail.com
autrement dit sur hotmail ... pas Outlook
Je ne sais pas expliquer mieux
Le code correctement rédigé en te basant sur la macro du message#20
est celui que j'ai posté dans le code#21.
Mon précédent message est pour expliquer comment on utilise une macro paramétrée.
(Ce n'est donc qu'une macro de test avec un MsgBox à seule vocation illustrative)
PS: Quand on parle d'Outlook, on parle du client de messagerie de Microsoft
(pas de ton adresse mail nom.prenom@outlook.com)
Ton compte de messagerie par défaut est lequel sur ton Windows ?
Re JM, décidément, je ne suis vraiment plus en état.
Laissons de côté ton #post21 pour l'instant.
Si tu as la solution à mon #post32, dans l'immédiat, je serai sauvé lol
Re JM, décidément, je ne suis vraiment plus en état.
Laissons de côté ton #post21 pour l'instant.
Si tu as la solution à mon #post32, dans l'immédiat, je serai sauvé lol