IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

Envoyer un courriel en tant que


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Envoyer un courriel en tant que
    Bonjour,

    J'ai présentement Outlook 2019, configuré avec mon compte Gmail.
    J'ai souvent à envoyer avec mon compte d'entreprise.
    J'utilise le VBA ci-dessous, dans mon Outlook (ThisOutlookSession), mais après il refuse de démarrer par la suite.

    Avez-vous une idée pour le corriger ?

    J'ai essayé de modifier l'adresse courriel de mon compte pour "info@compagnie.com" encore là, ça ne fonctionne plus.

    Merci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Dim WithEvents objInspectors As Outlook.Inspectors
    Dim WithEvents objMailItem As Outlook.MailItem
    Dim WithEvents myOlExp As Outlook.Explorer
     
    Private Sub Application_Startup()
        Initialize_handler
    End Sub
     
    Public Sub Initialize_handler()
        Set objInspectors = Application.Inspectors
        Set myOlExp = Application.ActiveExplorer
    End Sub
     
    Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector)
        If Inspector.CurrentItem.Class = olMail Then
            Set objMailItem = Inspector.CurrentItem
            If objMailItem.Sent = False Then
                Call SetFromAddress(objMailItem)
            End If
        End If
    End Sub
     
    Private Sub myOlExp_InlineResponse(ByVal objItem As Object)
        Call SetFromAddress(objItem)
    End Sub
     
    Public Sub SetFromAddress(oMail As Outlook.MailItem)
        oMail.SentOnBehalfOfName = "info@compagnie.com"
    End Sub

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    JE comprends pas trop ta logique,

    tu veux systématiquement envoyer avec ton adresse pro ?
    pourquoi ne crées tu pas un compte supplémentaire sur ton profil et ajoute les champ DE : (dans l'onglet OPTIONS)

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Mon adresse professionnelle est seulement transférée à mon adresse gmail personnel. (email forwarding)

    Lorsque j'utilise Gmail.com, il répond de la même adresse que celle avec laquelle le message à été envoyé, ainsi je peux répondre avec l'un ou l'autre des courriels.

    J'utilise Outlook au bureau, alors j'aimerais qu'il utilise mon adresse professionnelle avec l'IMAP et SMTP de Gmail. Je ne veux pas avoir à le choisir tout le temps.

    Merci encore,

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Ok je comprends mieux.

    Mais là ton code est "censé" toujours répondre (quel que soit le mail) avec ton adresse pro ?

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Exact !

    Voyez-vous une erreur dans ce code ?

    De plus, lorsque la personne reçoit le courriel, il n'est pas écrit le nom de ma compagnie, mais seulement le courriel.

    Y'a-t-il une façon de l'ajouter ?

    Merci encore,

  6. #6
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    ça doit fonctionner !!

    tu peux avoir un message d'erreur de délivrance selon le type de compte que tu utilises masi en SMTP ça devrait aller.

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oMail.SentOnBehalfOfName = "info@compagnie.com"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oMail.SentOnBehalfOfName = "info <info@compagnie.com>"
    il faut savoir que si tu fais STOP dans tes macros ou que tu as un plantage de ta macro, tes variables objInspectors et myOlExpse vident ! et il faut les réinitialiser.

    tu peux relancer le "set" via des événements récurrents comme application_newmail ou application_itemload


    si tu veux plus pointu sur la gestions des événements liés à un Email il est préférable d'utiliser un module de classe

    -->https://www.developpez.net/forums/bl...mails-outlook/

  7. #7
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Oliv- Voir le message
    ça doit fonctionner !!

    tu peux avoir un message d'erreur de délivrance selon le type de compte que tu utilises masi en SMTP ça devrait aller.

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oMail.SentOnBehalfOfName = "info@compagnie.com"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oMail.SentOnBehalfOfName = "info <info@compagnie.com>
    "
    Merci pour les informations.

    Citation Envoyé par Oliv- Voir le message
    il faut savoir que si tu fais STOP dans tes macros ou que tu as un plantage de ta macro, tes variables objInspectors et myOlExpse vident ! et il faut les réinitialiser.

    tu peux relancer le "set" via des événements récurrents comme application_newmail ou application_itemload


    si tu veux plus pointu sur la gestions des événements liés à un Email il est préférable d'utiliser un module de classe

    -->https://www.developpez.net/forums/bl...mails-outlook/
    Pour cette partie, tu m'as perdu...

    Merci,

  8. #8
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Quand tu initialises ta macro tu créés des OBJETS

    Set objInspectors = Application.Inspectors
    Set myOlExp = Application.ActiveExplorer

    et ils te signalent des événements les concernant

    par exemple _NewInspector

    ce qui déclenche ta macro

    quand cela ne marche plus ça peux venir du fait que tu as arrêté la macro ou qu'elle a perdu ses objets, du coup plus rien ne se lance avant d'avoir rechargé ces objets.

    IL y a une autre solution sans doute plus fiable c'est d'utiliser l'événement application_itemsend, qui se déclenche quand tu cliques sur envoyer mais avant l'envoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Call SetFromAddress(Item)
    End Sub
     
    Public Sub SetFromAddress(oMail As Outlook.MailItem)
        oMail.SentOnBehalfOfName = "info@compagnie.com"
    End Sub
    mais cela concerne tous les envois , si tu veux tu peux ajouter une question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    if msgbox ("envoi pro ?",vbyesno) = vbyes then
    Call SetFromAddress(Item)
    end if
    End Sub

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/12/2015, 10h46
  2. [WD-2003] Envoyer plusieurs documents en tant que pièce jointe
    Par Adweuz dans le forum VBA Word
    Réponses: 3
    Dernier message: 10/07/2012, 21h51
  3. [MySQL] envoyer fichier chargé par formulaire an tant que pièce joint dans l'Email de destination
    Par all4youweb dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/07/2010, 10h35
  4. Joindre un courriel en tant que pièce jointe à un autre courriel
    Par Yvouille dans le forum Outlook Express / Windows Mail
    Réponses: 0
    Dernier message: 17/02/2010, 20h21
  5. [Exch. 2003] Envoyer en tant que [Nom du groupe]
    Par Piet dans le forum Exchange Server
    Réponses: 0
    Dernier message: 09/09/2008, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo