Bouton envoyer mail

Fermé
daniel22 Messages postés 335 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 25 juillet 2024 - 6 janv. 2019 à 17:12
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 - 6 janv. 2019 à 18:43
Bonjour,

J'ai un tableau Excel que je souhaiterais envoyer automatiquement fin de mois via un clic sur un bouton.
Je ne connais RIEN en programation.
J'ai déniché sur le web un code qui pourrait servir je crois.

Mais.... il ne fonctionne pas.

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Body content" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = "xxxxx@gmail.com"
.CC = ""
.BCC = ""
.Subject = "Test email send by button clicking"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub


Questions : 1 que doit on mettre en xMailBody

2. faut il farder les " devant et après l'adresse mail ?

3.Comment repasser du mode création au mode conception dans le Developer ?


Si quelqu'un avait le courrage de m'aider......

Merci d'avance.
A voir également:

3 réponses

cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 496
6 janv. 2019 à 18:12
xMailBody est une variable de type String contenant tout le texte de l'email.

A toi de la déclarer et d'y appliquer le contenu que tu souhaite (ce que tu veux dans ton mail en somme)

Cela dit, j'aurai ré-écris ce code pour simplifier son utilisation (et ré-utilisation)
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié le 6 janv. 2019 à 18:20
Bonjour,

« Je ne connais RIEN en programation. »
Si tu n'apprends pas , tu cours à la catastrophe en piochant des codes ici et là !
Mais apprendre va te demander beaucoup de temps (et même plus).
Ici un excellent cours pour débutant :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf

Mais tu peux générer un mail sans VBA avec un lien hypertexte.
Exemple : https://mon-partage.fr/f/1xH3RYnv/


0
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 496
6 janv. 2019 à 18:43
Ca prend 5 minutes à adapter.

Petite Sub adaptée du code fournie :

Private Sub SendMail(SendTo As String, Subjet As String, Content As String, Optional SendCopy As String = "", Optional SendHiddenCopy As String = "")
On Error Resume Next
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = SendTo
.CC = SendCopy
.BCC = SendHiddenCopy
.Subject = Subjet
.Body = Content
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub


Et on l'appelle comme ceci :

Call SendMail("toto@toto.com", "Mail de test", "Ceci est un mail de test.")

Si on veut une adresse mail en copie :

Call SendMail("toto@toto.com", "Mail de test", "Ceci est un mail de test.", "tata@tata.com")

Si on veut quelqu'un en copie ET en copie invisible :

Call SendMail("toto@toto.com", "Mail de test", "Ceci est un mail de test.", "tata@tata.com", "tutu@tutu.com")

Et enfin si on ne veut que quelqu'un en copie invisible et en copie normale :

Call SendMail("toto@toto.com", "Mail de test", "Ceci est un mail de test.", "", "tata@tata.com")

Ce code est fonctionnel, je l'ai testé avant de le poster ^^

Evidement, y a toujours moyen d'optimiser la chose ...
0