XL 2019 Envoi de mails avec l'adresse secondaire et non l'adresse principale d'Outlook

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Webperegrino

XLDnaute Impliqué
Supporter XLD
Bonjour le Forum,

Comme vous le constaterez dans la macro intégrée au fichier ci-joint, mon approche d'envoi de mail groupé en Cci ne se fait qu'avec l'Adresse Principale.
Tout fonctionne apparemment bien (le texte du message, les pièces jointes sont bien expédiés vers les destinataires - chacun ne sachant pas à qui j'ai expédié ce mail)
Jusque là j'ai réussi mes lignes de codes.

Mon problème est que je voudrais que le mail soit reçu par les destinataires avec comme expéditeur mon adresse secondaire dan Outlook.

Pouvez-vous m'aider en corrigeant le contenu de la macro pour que les mails soient transmis momentanément avec cette adresse secondaire ?
.... et qu'au sortir de la macro, Outlook retrouve l'adresse principale par défaut pour une gestion de mails en dehors de l'application de ce fichier.

J'ai fureté sur le Web pour essayer d'appliquer cela : je me casse les dents à chaque tentative, c'est à chaque fois l'adresse principale de l'expéditeur qui est est signalée à la réception.
(J'ai cherche aussi à coder pour une coloration en violet du contenu du message lorsque le destinataire reçoit le mail - en vain ...-)
Merci à l'avance
 

Pièces jointes

Solution
Bonjour Le Forum,
Une bonne nouvelle ce soir !
Je vais pouvoir expédier mes mails avec pièces jointes en salve !
Bernard _XLD et TooFatBoy, vous allez être soulagés : l'application de TooFatBoy rénovée en #16 fonctionne parfaitement !
Ce ne sont pas les lignes de codification VBA qui étaient en cause !

Mon réparateur d'ordi vient de me quitter après une réparation et quelques mises à jour de l'unité centrale.
Je vous reproduis ci-dessous ce que j'ai pu comprendre de son jargon de spécialiste :
"- Votre application Excel n'est pas en cause.
Je viens de paraméter l'Application Outlok de la suite OFFICE avec mise en place du compte qui vous intéresse
(ma fameuse adresse secondaire devant aller dans From : chez les destinataires...
Bonjour,

prop (problèmes de logique et couleur violette non traités) :
VB:
Sub Envoi_mails()
'
Dim sh As Worksheet
Dim OA As Object, msg As Object
Dim i As Integer, n As Integer, last_row As Integer

    Set sh = ThisWorkbook.Sheets("Envoi mails")
    Set OA = CreateObject("outlook.application")
    n = 0   ' Nombre d'envois
    last_row = Application.CountA(sh.Range("K:K"))

    For i = 2 To last_row

        If sh.Range("K" & i).Value = "OUI" Then

            Set msg = OA.CreateItem(0)

            With msg

                ' Choix de l'adresse d'expéditeur dans Outlook
'                .Sender = "adresse.secondaire@hotmail.com" '*************** Est-ce utile ?
'                .SendUsingAccount = "adresse.secondaire@hotmail.com" '*************** Est-ce utile ?
                .SentOnBehalfOfName = "adresse.secondaire@hotmail.com"

                .To = sh.Range("C" & i).Value       ' À...
                .CC = sh.Range("D" & i).Value       ' Cc...
                .BCC = sh.Range("E" & i).Value      ' Cci ou BCC
                .Subject = sh.Range("F" & i).Value

                ' Je voudrais le texte en violet dans ce mail reçu par les destinataires
                .Body = sh.Range("G" & i).Value
                On Error Resume Next
                If sh.Range("H" & i).Value <> "" Then .Attachments.Add sh.Range("H" & i).Value
                If sh.Range("I" & i).Value <> "" Then .Attachments.Add sh.Range("I" & i).Value
                If sh.Range("J" & i).Value <> "" Then .Attachments.Add sh.Range("J" & i).Value

                n = n + 1
                .display
'                .Send
                If sh.Range("K" & i).Value = "OUI" Then
                    sh.Range("L" & i).Value = "Envoyé" & Chr(10) & Date & "_" & Time
                    sh.Range("K" & i).Value = "Expédié"
                End If

            End With

        End If

    Next i

    If n > 1 Then
        MsgBox n & " messages envoyés"
    Else
        MsgBox "Le message est envoyé"
    End If

    ' Nettoyage d'Outlook ?
    If (Not (oOutlook Is Nothing)) Then Set oOulook = Nothing '*************** Est-ce utile ?

End Sub
 
Dernière édition:
Bonjour Webperegrino, zebanx, TooFatBoy, le forum

Pour la couleur violet, remplacer la ligne
VB:
.Body = sh.Range("G" & i).Value
par
VB:
.HTMLBody = "<font style=""color: #8439BD"">" & sh.Range("G" & i).Value & "</font>" & .HTMLBody
ou en modifiant juste la couleur sans passer par le font style (qui permet de tout modifier en une passe, police taille couleur type etc)
VB:
.HTMLBody = "<font color=#8439BD>" & sh.Range("G" & i).Value & "</font>" & .HTMLBody

pour ne pas avoir la signature outlook dans le courriel si elle est active par défaut, enlever & .HTMLBody à la fin du code

Cordialement,
Bernard_XLD
 
Dernière édition:
Re,

et pour récupérer des couleurs excel pour le mail, vous pouvez utiliser la fonction de conversion de Patricktoulon

Code:
Function coul_XL_to_coul_HTMLX(couleur)
'fonction HTMLCOLOR ---> By Patricktoulon
    Dim str0 As String, strf As String
    str0 = Right("000000" & Hex(couleur), 6): strf = Right(str0, 2) & Mid(str0, 3, 2) & Left(str0, 2)
    coul_XL_to_coul_HTMLX = "#" & strf & ""
End Function

Cordialement,
Bertnard_XLD
 
Le Forum,
Bonjour Zebanx, TooFatBoy, Bernard_XLD,
Merci à vous trois : je fais surface !

J'ai appliqué vos propositions et ai fait un peu de ménage dans les lignes de codes ; j'ai réussi selon le fichier ci-joint (ici les adresses mails placées sont bien sûr fictives). Les destinataires reçoivent bien le courriel mis en forme parfaite (Cci fonctionne et le texte paraît bien en violet, avec retours de lignes également).

Pour TooFatBoy #5 :
Pour ce qui est de l'application en cours, c'est en furetant ici et là que j'ai conçu le fichier, pour comprendre.
Merci beaucoup : je peux maintenant exploiter cette version n° 2.

#5 : Supprimer le TS ? je ne sais pas ce que vous voulez m'indiquer.
Si vous me parlez de l'application #7 du 10/7/2024 Joindre par mail un fichier .pdf, (deuxième fichier très intéressant ici joint également) c'est à partir de cette proposition du 4 juillet 2024 que je vais essayer de réaliser le même travail d'envoi BCC-Cci selon toujours l'utilisation de l'adresse secondaire dans l'envoi via Outlook... et là ça va être pour moi de nouvelles sueurs au front...

Belle journée à vous tous,
Webperegrino

PS : j'oubliais TooFatBoy ; tu m'avais indiqué qu'on se tutoyait sur ce Forum.
 

Pièces jointes

Dernière édition:
#5 : Supprimer le TS ? je ne sais pas ce que vous voulez m'indiquer.
Je parlais du Tableau Structuré qui était utilisé dans le classeur de cet ancien fil de discussion :
 
Bonjour le fil, le forum

@Webperegrino , je n'avais pas ouvert le fichier et seulement traité la couleur dans le code, je n'avais pas vu que les cellules de message contenaient des sauts de ligne internes.
Pour les traiter, modifier comme suit, cela remplacera les sauts de ligne Excel par des balises HTML de saut de ligne.
VB:
.HTMLBody = "<font color=#8439BD>" & Replace(sh.Range("G" & i).Value, vbLf, "<BR>") & "</font>" & .HTMLBody

Cordialement,
Bernard_XLD
 
Le Forum,
Merci Bernard, en effet je m'en étais rendu compte (que le texte partait en 'continu').
J'ai appliqué à l'instant votre correction : cela fonctionne parfaitement les retours de lignes !
Ça fait plaisir toute cette aide.

Ce fichier devrait fonctionner seulement avec l'adresse secondaire (celle qui est en ligne code VBA et éventuellement à l'adresse "Adressé À : ... )
et avec l'information des "Envoyés" à l'adresse Secondaire et non pas à l'Adresse Principale.

Ce qui est curieux c'est que le message qui part avec "Adressé À..." [l'adresse secondaire] arrive :
- à l'adresse secondaire avec uniquement À : l'adresse secondaire
(et n'a pas le fameux "Cci : les destinataires Cci").
C'est-à-dire que dans ce destinataire "l'adresse secondaire" n'a pas l'information de ceux qui sont en Cci : la liste des destinataires Cci après "Cci :".

Et curieusement, c'est uniquement dans l'adresse principale, de plus avec "Administrateur système" comme nom du porteur du message que je reçoit le message d'expédition par :
- À : l'adresse secondaire,
- Cci : les destinataires Cci.

Comment faire pour que cette réception de messages n'aille que sur l'adresse secondaire (avec l'information Cci à : ...) et non pas sur l'adresse principale d'Outlook ?
Cordialement,
Webperegrino
 
Bonsoir Le Forum,

Rien d'urgent pour me répondre, je désire que nous laissions passer le week-end...

J'ai évolué dans mon approche de l'utilisation de la production de TooFatBoy , plus efficace, et je me retrouve avec des anomalies de fonctionnement des lignes de codification VBA dans cette nouvelle adaptation plus intéressante que le premier fichier.
Le voici en pièce jointe.

Dans le fonctionnement que j'utilise, l'adresse d'envoi des mails est la secondaire.
En effet, dans Outlook, j'ai une adresse principale et une adresse secondaire - c'est cette dernière qui sera utilisée pour le fonctionnement d'une Association et c'est là que les messages partant et les messages de confirmation d'envoi doivent figurer -.
Les mails à expédier en Cci : voir colonne L (une adresse, ou plusieurs quand je ne joins pas de pièce personnalisée au nom de la personne citée en deux premières colonnes)

Les pièces jointes sont bien jointes au message partant, ce qui est super.

Le problème est que la confirmation va à l'adresse principale avec comme nom de compte « Administrateur système" à la place du Nom complet du compte. Alors que la confirmation d'expédition du mail devrait arriver à l’adresse secondaire.
Seule la Boîte de réception Adresse secondaire (avec son nom de compte et non l’expression ‘Administrateur système’) devrait avoir la confirmation d'envoi avec les Cci énumérés.

Le·s mail·s expédié·s devrait·ent arriver chez le·s destinataire·s : la macro ne les lui expédie pas, tant en hotmail qu'en gmail.

Nota : voir remarques en feuille Paramètre, lignes 8 à 16.
Merci à l'avance d'intervenir pour un meilleur fonctionnement de ce fichier.
Webperegrino
 

Pièces jointes

Dans le fonctionnement que j'utilise, l'adresse d'envoi des mails est la secondaire.
En effet, dans Outlook, j'ai une adresse principale et une adresse secondaire - c'est cette dernière qui sera utilisée pour le fonctionnement d'une Association et c'est là que les messages partant et les messages de confirmation d'envoi doivent figurer -.
Les mails à expédier en Cci : voir colonne L (une adresse, ou plusieurs quand je ne joins pas de pièce personnalisée au nom de la personne citée en deux premières colonnes)
Je n'y connais rien dans tout ça, mais Bernard a l'air de bien maîtriser la chose donc il va pouvoir t'aider à finaliser ton projet. 👍
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
633
Réponses
2
Affichages
712
Retour