Récupération d'un texte à insérer dans le corps d'un mail

Signaler
Messages postés
50
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
3 août 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

je suis en train de créer une macro qui prépare automatiquement des mails.
En ce qui concerne l'insertion des adresses des destinataires, des copie, ... le sujet, il n'y a pas de problème. Seulement, je voudrais également insérer un texte, préparé sous word, dans le corps du message.
Pour cela, dans ma feuille Excel, j'ai créer un lien hypertexte vers le fichier word mais je ne sais pas comment faire pour l'insertion automatique.

Merci d'avance pour votre aide. 

9 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
pilote Word depuis Excel pour aller récupérer le Corps du document pour ensuite l'insérer dans le coprs.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
50
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
3 août 2007

Merci pour l'info,
mais je suis complètement débutante dans le domaine, pourrais tu me donner plus de précisions.

Merci encore.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Le code suivant devrait récupérer le contenu du fichier "C:\Test.Doc"

'Ajoute en référence à ton projet VBA
'Dans l'IDE VBA Menu Outils => Référence => Microsoft Word 9.0 Object Library
'9.0 ou équivalent
Dim WApp As New Word.Application
Dim Contenu As String
Dim WDoc As Word.Document
   
   'Ouverture de C:\Test.Doc
   Set WDoc = WApp.Documents.Open("C:\Test.doc")
   'Selection de tout le contenu du document
   Call WApp.Selection.WholeStory
   'récupération du contenu
   Contenu = WApp.Selection
   'Affichage du contenu
   MsgBox Contenu
   'Fermeture du Document sans sauver
   Call WDoc.Close(False)
   'Quitte Word.
   Call WApp.Quit, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
50
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
3 août 2007

Y aurait-il un moyen que la recopie du message conserve sa mise en page ?
Parce que là tout le texte est collé.
Messages postés
50
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
3 août 2007

Si je veux conserver la même procédure, serait-il possible de copier le texte du doc. Word et de le coller dans le mail Outlook, ainsi la mise en page serait conservée ?

Merci
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Essaie en utilisant
MonMailItem.HTMLBody = "...."
au lieu de
MonMailItem. Body = "...."

MPi
Messages postés
50
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
3 août 2007

    Voila mon code :
   
   sujet = "Tableau de Bord : " & Range("C" & Selection.Row).Value
    HyperLien = "mailto:" & adresse & "?"
    ' Le ? introduit les arguments tandis que le & sépare les arguments et les concatène
    HyperLien = HyperLien & "Subject=" & sujet
   
    'Ouverture de Texte_Diffusion.doc
    Set WDoc = WApp.Documents.Open("S:\DCG\_Commun\Plan Qualité CdG\Suivi des Etats\Texte_Diffusion.doc")
    'Selection de tout le contenu du document
    Call WApp.Selection.WholeStory
    'récupération du contenu
    corps = WApp.Selection
    'Fermeture du Document sans sauver
    Call WDoc.Close(False)
    'Quitte Word.
    Call WApp.Quit
 
    HyperLien = HyperLien & "&Body=" & corps
    HyperLien = HyperLien & "&Cc=" & adrCopies
    ActiveWorkbook.FollowHyperlink HyperLien

Avec ce code, la préparation du mail marche mais le corps du message ne conserve pas la mise en page du document word.
Je ne vois pas très bien à quel moment, je dois utiliser :
MonMailItem. HTMLBody = "...." ?
Messages postés
50
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
3 août 2007

    sujet = "Tableau de Bord : " & Range("C" & Selection.Row).Value
    HyperLien = "mailto:" & adresse & "?"
    ' Le ? introduit les arguments tandis que le & sépare les arguments et les concatène
    HyperLien = HyperLien & "Subject=" & sujet
   
    'Ouverture de Texte_Diffusion.doc
    Set WDoc = WApp.Documents.Open("S:\DCG\_Commun\Plan Qualité CdG\Suivi des Etats\Texte_Diffusion.doc")
    'Selection de tout le contenu du document
    Call WApp.Selection.WholeStory
    'récupération du contenu
    corps = WApp.Selection
    'Fermeture du Document sans sauver
    Call WDoc.Close(False)
    'Quitte Word.
    Call WApp.Quit
 
    HyperLien = HyperLien & "&Body=" & corps
    HyperLien = HyperLien & "&Cc=" & adrCopies
    ActiveWorkbook.FollowHyperlink HyperLien
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Oublie ce que j'ai dit...
Je pensais que tu utilisais Outlook en tant qu'objet.
HTMLBody est une fonctionnalité de l'objet MailItem d'Outlook...

MPi