Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 vba - envoi d'un mail avec le choix de l'adresse mail expéditeur (qd on a 2 comptes)

Chrystel01

XLDnaute Occasionnel
Bonjour,

J'ai fait programme qui enverra un mail avec pièces jointes à un ensemble de destinataires.
Ce mail doit partir d'une adresse spécifique (messagerie générique du service) et pas de l'adresse de la personne par défaut ds outlook (elle a 2 comptes)
Comment faire pour la préciser dans le code VBA ? J'ai fait un essai mais cela ne fonctionne pas (fichier en pièce jointe - macro basée sur le bouton en colonne F)

Merci d'avance pour votre aide

Chrystel

Sub mailadress()
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
Set OutAccount = OutApp.Session.Accounts("xxxxxx.@yahoo.fr")

With OutMail
.SendUsingAccount = OutAccount
.To = "1111111111@yahoo.fr"
.CC = ""
.BCC = ""
.Subject = "Demandes de créneaux 2023 "
.Display
End With

Set OutMail = Nothing
Set OutApp = Nothing
Set OutAccount = Nothing

End Sub
 

Pièces jointes

  • test envoimail.xlsm
    39 KB · Affichages: 1
Dernière édition:
Solution
Bonsoir,
VB:
Sub mailadress()
Dim Account         As Object 'Outlook.Account

    Compte = ".......@gmail.com"
    Set Outapp = CreateObject("Outlook.Application")
    With Outapp.createitem(0)
        For Each Elem In Outapp.Session.Accounts
            If Elem = Compte Then Set Account = Elem: Exit For
        Next
        If Account Is Nothing Then MsgBox Compte & " non trouvé", vbCritical: GoTo Exit_Sub
        Set .SendUsingAccount = Account ' Attention: le Set est important
        .To = "1111111111@yahoo.fr"
        .CC = ""
        .BCC = ""
        .Subject = "Demandes de créneaux 2023 "
        .Display
    End With

Exit_Sub:
    Set Outapp = Nothing
    Set Account = Nothing

End Sub

fanch55

XLDnaute Barbatruc
Bonsoir,
VB:
Sub mailadress()
Dim Account         As Object 'Outlook.Account

    Compte = ".......@gmail.com"
    Set Outapp = CreateObject("Outlook.Application")
    With Outapp.createitem(0)
        For Each Elem In Outapp.Session.Accounts
            If Elem = Compte Then Set Account = Elem: Exit For
        Next
        If Account Is Nothing Then MsgBox Compte & " non trouvé", vbCritical: GoTo Exit_Sub
        Set .SendUsingAccount = Account ' Attention: le Set est important
        .To = "1111111111@yahoo.fr"
        .CC = ""
        .BCC = ""
        .Subject = "Demandes de créneaux 2023 "
        .Display
    End With

Exit_Sub:
    Set Outapp = Nothing
    Set Account = Nothing

End Sub
 

patricktoulon

XLDnaute Barbatruc
bonjour
si ce n'est pas important de garder le mail dans le dossier des "messages envoyes"
tu le laisse s'ouvrir avec n'importe quel compte et tu utilise un autre emmeteur


VB:
.SentOnBehalfOfName="une autre adresse émetteur @youméméle.coum"
 

Chrystel01

XLDnaute Occasionnel
Bonjour,

Merci à tous pour vos réponses !

@fanch55,
Votre code fonctionne parfaitement sur mon poste . Merci beaucoup. Je le testerai demain sur le poste utilisateur avec 2 comptes.

@kiki29
Effectivement, j'ai consulté le site de Ron et c'est son code VBA que j'ai utilisé.
Il fonctionne avec le compte outlook mais pas avec un nom d'adresse mail...

@patricktoulon
J'ai bien créé un autre code VBA avec ".SentOnBehalfOfName" mais cette solution n'était pas idéale. Je l'aurais utilisé si nous n'avions pas d'autres possibilités.

Merci encore pour votre aide, bonne soirée

Chrystel


 

Discussions similaires

Réponses
6
Affichages
564
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…