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

Macros et VBA Excel Discussion :

Macro envoi mail avec signature ET piece jointe [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant en finance de marché
    Inscrit en
    Janvier 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant en finance de marché

    Informations forums :
    Inscription : Janvier 2017
    Messages : 40
    Par défaut Macro envoi mail avec signature ET piece jointe
    Bonjour,

    j'ai écumé beaucoup de forums et je n'arrive toujours pas à trouver la solution parfaite à mon problème, je souhaite envoyer un mail avec PJ et signature via EXCEL.

    J'ai tenté différentes approches dont les codes proposés par ron de bruin (http://www.rondebruin.nl/win/s1/outlook/signature.htm) mais qui ne réponds pas parfaitement à mes attentes puisqu'il n'inclut pas la PJ ou que les codes en question font totalement planter la macro dés lors que j'ajoute l'attachementsAdd. Ce qui se rapproche le plus de ce que je souhaite je pense est le code ci-dessous.

    Toutefois la fonction GetInspector ne marche pas, je n'ai pas d'erreur de macro mais elle n'appose pas ma signature, pour le reste tout est OK, le fichier est bien mis en PJ et la Mise en page est OK.

    Si qq'un a des suggestions je suis preneur, ou bien sûr un code formulé autrement qui m'aiderait :

    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
    30
    31
    32
    33
    34
    35
    36
    Sub Sendings()
     
        Dim a As Outlook.MailItem
        Dim olApp As New Outlook.Application
     
        Dim datRef          As Date
        Dim strPer          As String
     
        'Determination de la date du jour
     
        datRef = Date
        strPer = ""
        strPer = Format(datRef, "YYYY_MM_DD")
     
        '1ere file Test ------------------------------------------------------------
        'groupecc -------------------------------
     
        Set a = Outlook.CreateItem(olMailItem)
        Set olApp = Nothing
        With a
            .To = "blabla@test"
            .CC = "blabla@test"
            .Subject = "TEST"
            .BodyFormat = olFormatHTML
            .HTMLBody = "<p>TEST,<p>"
            .Attachments.Add ("F:\TEST\TEST_" & strPer & ".xls")
            .GetInspector.CommandBars.Item("Insert").Controls("Signature").Controls(1).Execute
            .Display
     
        End With
     
        On Error GoTo 0
        Set OutMail = Nothing
        Set OutApp = Nothing
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Pour la signature, tu n'as qu'à faire un .Display au début.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        With a
            .Display   'crée la signature
            .To = "blabla@test"
            .CC = "blabla@test"
            .Subject = "TEST"
            .BodyFormat = olFormatHTML
            .HTMLBody = "<p>TEST,<p>" & .HTML.Body  'ajoute ton texte avant la signature
            .Attachments.Add "F:\TEST\TEST_" & strPer & ".xls"
            .Display
     
        End With

  3. #3
    Membre averti
    Homme Profil pro
    Consultant en finance de marché
    Inscrit en
    Janvier 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant en finance de marché

    Informations forums :
    Inscription : Janvier 2017
    Messages : 40
    Par défaut
    Hello Parmi,

    merci pour ce retour rapide, j'ai fais les modifs avec un & .HTMLBody et le remove de la ligne GetInspector, comme tu me l'as notifié (pas de point sur mon VBA entre HTML et Body).

    Toutefois j'ai une erreur 287 qui apparait en me notifiant que l'objet n'est pas défini, as tu une idée d'où cela peut venir ?

    Par contre si je rajoute le .display en gardant le GetInspector, comme tu me l'as mis, j'ai effectivement tout qui s'affiche mais la signature arrive avant le texte.

    Si tu as une idée du pourquoi de l'erreur ou de comment réorganiser la 2e solution ... Je suis à l'écoute.

    Et merci encore pour ton temps.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    J'avais effectivement fait une erreur en ajoutant un point entre HTML et Body... désolé
    Par contre, pour ton erreur où survient-elle ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    à quoi servent ces deux variables que je n'aperçoit qu'à leur destruction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set OutMail = Nothing
    Set OutApp = Nothing
    Pourquoi partir de Outlook au lieu de olApp pour créer le Mailitem ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set a = Outlook.CreateItem(olMailItem)
    pourquoi détruire l'objet application au milieu du gué ?
    vu que j'ai pour habitude de le détruire à la fin, ma question est peut-être naïve et non liée à ton problème d'objet


    Question hors sujet (ou presque) : pourquoi ne pas travailler en liaison tardive ?


    EDIT : je conseille un .Save de sécurité après l'ajout de la pièce jointe. Ca m'a parfois joué des tours (principalement lors d'ajouts multiples)

  6. #6
    Membre averti
    Homme Profil pro
    Consultant en finance de marché
    Inscrit en
    Janvier 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant en finance de marché

    Informations forums :
    Inscription : Janvier 2017
    Messages : 40
    Par défaut
    Citation Envoyé par parmi Voir le message
    J'avais effectivement fait une erreur en ajoutant un point entre HTML et Body... désolé
    Par contre, pour ton erreur où survient-elle ?
    Bonjour Parmi,

    après un F8 j'ai constaté que lorsque la macro arrive sur la ligne

    BodyFormat = olFormatHTML, cela supprime la signature précédemment crée par le display.

    Ensuite l'erreur survient sur la ligne

    .HTMLBody = "<p>TEST,<p>" & "TEST" & .HTMLBody en erreur 287 donc. Peut-être Est-ce dû au fait que la signature précédemment importée s'efface ?

    Si tu as une idée, je prends.

    Citation Envoyé par joe.levrai Voir le message
    Bonjour,

    à quoi servent ces deux variables que je n'aperçoit qu'à leur destruction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set OutMail = Nothing
    Set OutApp = Nothing
    Pourquoi partir de Outlook au lieu de olApp pour créer le Mailitem ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set a = Outlook.CreateItem(olMailItem)
    pourquoi détruire l'objet application au milieu du gué ?
    vu que j'ai pour habitude de le détruire à la fin, ma question est peut-être naïve et non liée à ton problème d'objet


    Question hors sujet (ou presque) : pourquoi ne pas travailler en liaison tardive ?


    EDIT : je conseille un .Save de sécurité après l'ajout de la pièce jointe. Ca m'a parfois joué des tours (principalement lors d'ajouts multiples)
    Bonjour Joe, je n'ai que peu de réponses à te donner sur ces points :/, comme dit plus au haut je commence sur la VBA, j'apprends donc par moi même et ce code est un mix de deux solutions trouvés sur Internet et d'un ajout de ma part, le code n'est donc peut-être pas optimal ou très beau à voir pour un initié, mais si tu as mieux ou plus propre je suis preneur. Même de conseils sur les bases et fondamentaux.

    Je note ta remarque concernant le save car cela pourra m'aider pour plus tard sur un ajout multiple de PJ.

    Pour la liaison tardive, j'ai regardé sur Internet mais je n'ai rien trouvé de pertinent mais si tu peux m'expliquer ? Ou si c'est une piste à la résolution de mon problème je suis preneur.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Citation Envoyé par Aiyolia Voir le message
    Bonjour Parmi,

    après un F8 j'ai constaté que lorsque la macro arrive sur la ligne

    BodyFormat = olFormatHTML, cela supprime la signature précédemment crée par le display.

    Ensuite l'erreur survient sur la ligne

    .HTMLBody = "<p>TEST,<p>" & "TEST" & .HTMLBody en erreur 287 donc. Peut-être Est-ce dû au fait que la signature précédemment importée s'efface ?

    Si tu as une idée, je prends.
    Supprime cette ligne qui ne sert à rien, je pense...
    HTMLBody sous-entend que le body sera en HTML versus Body qui serait en texte "plain"

  8. #8
    Membre averti
    Homme Profil pro
    Consultant en finance de marché
    Inscrit en
    Janvier 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant en finance de marché

    Informations forums :
    Inscription : Janvier 2017
    Messages : 40
    Par défaut Same problem
    Citation Envoyé par parmi Voir le message
    Supprime cette ligne qui ne sert à rien, je pense...
    HTMLBody sous-entend que le body sera en HTML versus Body qui serait en texte "plain"
    Hello effectivement cette ligne ne sert à rien mais j'en reviens du coup toujours à cette même erreur qui se déclenche toujours au même endroit :

    .HTMLBody = "<p>text<p>" & "<p>blabla<p>" & "<p>bla<p>" & "<p>bla<p>" & "<p>bla<p>" & .HTMLBody

    Si j'enlève le & .HTMLBody le code fonctionne mais pas de signature.

    Si je le laisse, erreur 287 avec seulement le mail avec la signature.

    Je ne comprends pas ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/02/2014, 11h19
  2. Envoi de mail avec images et pieces jointes
    Par noooop dans le forum Web
    Réponses: 10
    Dernier message: 27/10/2013, 23h15
  3. [AC-2007] Envoi Mail avec Outlook et pièce jointe
    Par fbu78 dans le forum VBA Access
    Réponses: 10
    Dernier message: 14/01/2010, 23h29
  4. [SHELL] envoi de mail avec smtp et piece jointe
    Par pitiperchistes dans le forum Linux
    Réponses: 4
    Dernier message: 04/04/2009, 17h12
  5. [javamail] envoi mail avec message en pièce jointe
    Par k4eve dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 16/11/2007, 11h17

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