Email via VBA avec adresse mail en variable
Bonjour
Je veux envoyer un mail à une personne via VBA avec une pièce jointe. J'ai trouvé comment à le faire quand la personne est nommée en dur grâce au forum, j'arrive à récupérer la variable email en fonction de critères, mais je ne sais pas comment insérer ma variable dans l'adresse pour que le mail parte à la bonne personne. Voilà le code, merci pour votre aide
Dim t As String
Dim email As String
Dim VC, Rep, position
' récupère la valeur du Nom salarié en bookmars "nom"
t = ActiveDocument.Range(ActiveDocument.Bookmarks("nom").Range.Start, ActiveDocument.Bookmarks("finnom").Range.End).Text
VC = "aaa"
'compare avec le nom pour trouver l'adresse
position = InStr(1, t, VC, vbTextCompare)
If position <> 0 Then
email = "aaa@blabla.fr"
Else
VC = "bbb"
position = InStr(1, t, VC, vbTextCompare)
If position <> 0 Then
email = "bbb@blabla.fr"
Else
VC = "ccc"
position = InStr(1, t, VC, vbTextCompare)
If position <> 0 Then
email = "ccc@blabla.fr"
End If
End If
'envoyer un mail d'information aux ressources humaines
Dim NSession As Object
Dim NUIWorkspace As Object
Dim NMailDb As Object
Dim NUIDocument As Object
Dim bodytext As String
Set NSession = CreateObject("Notes.NotesSession") 'OLE (late binding only) because we access Notes UI classes
Set NUIWorkspace = CreateObject("Notes.NotesUIWorkspace")
Set NMailDb = NSession.GETDATABASE("", "")
NMailDb.OPENMAIL
'Compose the email document
Set NUIDocument = NUIWorkspace.ComposeDocument(NMailDb.Server, NMailDb.filePath, "Memo")
'Set NUIDocument = NUIWorkspace.ComposeDocument(, , "Memo") 'use local computer and current database
With NUIDocument
.FieldSetText "EnterSendTo", "email@blabla.fr, " 'adresse mail à composer en fonction du destinataire
.FieldSetText "Subject", "Demande de congés "
bodytext = "Bonjour, vous avez une nouvelle demande de congés validée Bien Cordialement"
.FieldSetText "Body", bodytext
'Set NotesDocument options to save and send the email without prompts when the Close method is called
.Document.SaveOptions = "1"
.Document.MailOptions = "1"
.Close
End With
Set NUIDocument = Nothing
Bonjour,
J'ai une macro qui fonctionne bien et qui est simple. Il suffit d'insérer la référence "Microsoft Outlook16.0 Object Library" et le tour est joué :
Sub Envoyer_Mail_Outlook()
Set ObjOutlook = New Outlook.Application
Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---------------------------------------------------------
Déclaration des adresses
mail= gg@ff.fr
copie = ff@ff.fr
'--------------------------------------------------------
With oBjMail
'détermination des destinataire
' le destinataire
.To = mail
'les copies
.CC = copie
' l'objet du mail
.Subject = "Compte rendu de la réunion de ce jour"
'le contenu
.Body = "Bonjour," & vbNewLine & vbNewLine & "Veuillez trouver ci-joint le compte rendu de ce jour." & vbNewLine & vbNewLine & "Merci de compléter s'il manque des éléments par retour de mail, le plus rapidement possible." & vbNewLine & vbNewLine
.Display
' Ici on peut supprimer pour l'envoyer sans vérification
.Send
End With
'ObjOutlook.Quit
Set oBjMail = Nothing
Set ObjOutlook = Nothing
End Sub
Bonjour
Merci pour la réponse. Mais avant de faire un test je précise deux choses : j'utilise Lotus note et mon destinataire est aléatoire et non toujours le ou les mêmes. (documents confidentiels)
Il me semble que ce code propose uniquement une Adresse mail en dure.
Bonjour,
Pour lotus je ne sais pas, a tester, pour ce qui est de l'adresse mail, tu la sort bien de quelque part ?
Mon document est un formulaire de demande de congés envoyé à la direction pour accord. Si la direction est ok, elle retourne un mail de confirmation à l'emetteur d'origine. C'est ce nom que je récupère via ma variable email. Ce code fonctionne. Mais je ne sais pas utiliser cette variable ensuite pour créer la ligne de code qui envoie le mail à au bon destinataire.
Merci de me donner un coup de main
Tu peux pas envoyer le fichier ?
Au pire en MP.