Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

copier/coller dans le body d'outlook du contenu d'un fichier word

3 réponses
Avatar
Bernard
Bonjour,

via Access j'ouvre Outlook et un fichier Word, je dois copier le contenu de
ce fichier Word dans le corps du message (et non envoyer le fichier Word en
pièce jointe, de plus le contenu de ce fichier Word change tout le temps et
je n'en suis pas maître, il m'est mis à disposition et c'est tout, donc je ne
peux changer le process).

Voici le code dont j'ai retiré tous les tests de présence, de déjà ouvert,
etc.. pour alléger et simplifier la compréhension
[CODE]
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim leNameSpace As NameSpace
Dim leFolder As MAPIFolder

Dim wApp As Word.Application
Dim oWord As Word.Document

On Error GoTo GestErr

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
Set oAttachement = oMail.Attachments
oMail.Body = "Test"
oMail.Subject = "Test"
oMail.To = "toto@free.fr"
'je force l'ouverture d'Outlook
Set leNameSpace = oApp.GetNamespace("MAPI")
Set leFolder = leNameSpace.GetDefaultFolder(olFolderOutbox)
leFolder.Display
oMail.Display

docname = "C:\test.doc"
Set wApp = New Word.Application
Set oWord = GetObject(docname, "Word.Document")
'Rend Word visible
oWord.Application.Visible = True
'je sélectionne tout le document Word
oWord.Select
wApp.Selection.Copy
'je remets au premier plan le mail
oMail.Display
oMail.Body = wApp.Selection


'Envoi le mail
oMail.Send
'je libère mais sciemment je ne referme ni Outlook ni Word
Set oWord = Nothing
Set wApp = Nothing
Set oMail = Nothing
Set oApp = Nothing
[/CODE]

Dans le corps je retrouve bien le contenu du document Word mais uniquement
le texte, pas les tableaux.
Comme Outlook et Word sont restés ouverts et que le texte sélectionné dans
Word est toujours sélectionné il me suffit dans le corps du mail de faire
"coller" et là je retrouve bien tout le contenu du document y compris les
tableaux !!!!

D'où ma question que dois-je faire ?
j'ai bien regardé sur le forum mais je ne trouve rien à ce sujet, ni dans
les cours.
J'ai essayé avec oMail.HTMLBody = wApp.Selection mais cela donne le même
résultat.
Donc si vous pouviez me donner soit un bout de code ou un lien j'en serais
ravi.
D'avance merci

3 réponses

Avatar
Philippe.R
Bonjour,
Si je puis me permettre, en tant que visiteur de passage, peut être une
syntaxe du type :

ActiveDocument.Range.Copy

conviendrait ?
--
Philippe.R
"Bernard" a écrit dans le message de
news:
Bonjour,

via Access j'ouvre Outlook et un fichier Word, je dois copier le contenu
de
ce fichier Word dans le corps du message (et non envoyer le fichier Word
en
pièce jointe, de plus le contenu de ce fichier Word change tout le temps
et
je n'en suis pas maître, il m'est mis à disposition et c'est tout, donc je
ne
peux changer le process).

Voici le code dont j'ai retiré tous les tests de présence, de déjà ouvert,
etc.. pour alléger et simplifier la compréhension
[CODE]
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim leNameSpace As NameSpace
Dim leFolder As MAPIFolder

Dim wApp As Word.Application
Dim oWord As Word.Document

On Error GoTo GestErr

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
Set oAttachement = oMail.Attachments
oMail.Body = "Test"
oMail.Subject = "Test"
oMail.To = ""
'je force l'ouverture d'Outlook
Set leNameSpace = oApp.GetNamespace("MAPI")
Set leFolder = leNameSpace.GetDefaultFolder(olFolderOutbox)
leFolder.Display
oMail.Display

docname = "C:test.doc"
Set wApp = New Word.Application
Set oWord = GetObject(docname, "Word.Document")
'Rend Word visible
oWord.Application.Visible = True
'je sélectionne tout le document Word
oWord.Select
wApp.Selection.Copy
'je remets au premier plan le mail
oMail.Display
oMail.Body = wApp.Selection


'Envoi le mail
oMail.Send
'je libère mais sciemment je ne referme ni Outlook ni Word
Set oWord = Nothing
Set wApp = Nothing
Set oMail = Nothing
Set oApp = Nothing
[/CODE]

Dans le corps je retrouve bien le contenu du document Word mais uniquement
le texte, pas les tableaux.
Comme Outlook et Word sont restés ouverts et que le texte sélectionné dans
Word est toujours sélectionné il me suffit dans le corps du mail de faire
"coller" et là je retrouve bien tout le contenu du document y compris les
tableaux !!!!

D'où ma question que dois-je faire ?
j'ai bien regardé sur le forum mais je ne trouve rien à ce sujet, ni dans
les cours.
J'ai essayé avec oMail.HTMLBody = wApp.Selection mais cela donne le même
résultat.
Donc si vous pouviez me donner soit un bout de code ou un lien j'en serais
ravi.
D'avance merci



Avatar
Bernard
Merci de m'avoir répondu,

mais hélas "ActiveDocument" correspond toujours au fichier Word et non à
l'email même si c'est celui-ci qui est actif et possède le focus. J'ai aussi
essayé avec "ActiveDocument.Range.Paste mais pareil.
Avez-vous une idée ? comment rendre l'email comme étant l'ActiveDocument ?
je pensais que de mettre au premier plan l'email par "oMail.Display"
suffisait, j'ai essayé aussi de faire :
oMail.Display
oMail.Body = oMail.Body & " "
ActiveDocument.Range.Paste"


d'avance merci



Bonjour,
Si je puis me permettre, en tant que visiteur de passage, peut être une
syntaxe du type :

ActiveDocument.Range.Copy

conviendrait ?
--
Philippe.R
"Bernard" a écrit dans le message de
news:
Bonjour,

via Access j'ouvre Outlook et un fichier Word, je dois copier le contenu
de
ce fichier Word dans le corps du message (et non envoyer le fichier Word
en
pièce jointe, de plus le contenu de ce fichier Word change tout le temps
et
je n'en suis pas maître, il m'est mis à disposition et c'est tout, donc je
ne
peux changer le process).

Voici le code dont j'ai retiré tous les tests de présence, de déjà ouvert,
etc.. pour alléger et simplifier la compréhension
[CODE]
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim leNameSpace As NameSpace
Dim leFolder As MAPIFolder

Dim wApp As Word.Application
Dim oWord As Word.Document

On Error GoTo GestErr

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
Set oAttachement = oMail.Attachments
oMail.Body = "Test"
oMail.Subject = "Test"
oMail.To = ""
'je force l'ouverture d'Outlook
Set leNameSpace = oApp.GetNamespace("MAPI")
Set leFolder = leNameSpace.GetDefaultFolder(olFolderOutbox)
leFolder.Display
oMail.Display

docname = "C:test.doc"
Set wApp = New Word.Application
Set oWord = GetObject(docname, "Word.Document")
'Rend Word visible
oWord.Application.Visible = True
'je sélectionne tout le document Word
oWord.Select
wApp.Selection.Copy
'je remets au premier plan le mail
oMail.Display
oMail.Body = wApp.Selection


'Envoi le mail
oMail.Send
'je libère mais sciemment je ne referme ni Outlook ni Word
Set oWord = Nothing
Set wApp = Nothing
Set oMail = Nothing
Set oApp = Nothing
[/CODE]

Dans le corps je retrouve bien le contenu du document Word mais uniquement
le texte, pas les tableaux.
Comme Outlook et Word sont restés ouverts et que le texte sélectionné dans
Word est toujours sélectionné il me suffit dans le corps du mail de faire
"coller" et là je retrouve bien tout le contenu du document y compris les
tableaux !!!!

D'où ma question que dois-je faire ?
j'ai bien regardé sur le forum mais je ne trouve rien à ce sujet, ni dans
les cours.
J'ai essayé avec oMail.HTMLBody = wApp.Selection mais cela donne le même
résultat.
Donc si vous pouviez me donner soit un bout de code ou un lien j'en serais
ravi.
D'avance merci







Avatar
Bernard
Merci de m'avoir répondu,

mais hélas "ActiveDocument" correspond toujours au fichier Word et non à
l'email même si c'est celui-ci qui est actif et possède le focus. J'ai aussi
essayé avec "ActiveDocument.Range.Paste mais pareil.
Avez-vous une idée ? comment rendre l'email comme étant l'ActiveDocument ?
je pensais que de mettre au premier plan l'email par "oMail.Display"
suffisait, j'ai essayé aussi de faire :
oMail.Display
'afin d'être sûr d'être dans le body
oMail.Body = oMail.Body & " "
msgbox ActiveDocument.name
pour voir où je suis
exit sub
et cela me donne toujours "test.doc" !! et pourtant je suis bien dans le
body du mail car si je fais "Ctrl V" il me le copie bien (je ne clique nul
part, l'exit sub me rend la main dans le body !!)


d'avance merci



Bonjour,
Si je puis me permettre, en tant que visiteur de passage, peut être une
syntaxe du type :

ActiveDocument.Range.Copy

conviendrait ?
--
Philippe.R
"Bernard" a écrit dans le message de
news:
Bonjour,

via Access j'ouvre Outlook et un fichier Word, je dois copier le contenu
de
ce fichier Word dans le corps du message (et non envoyer le fichier Word
en
pièce jointe, de plus le contenu de ce fichier Word change tout le temps
et
je n'en suis pas maître, il m'est mis à disposition et c'est tout, donc je
ne
peux changer le process).

Voici le code dont j'ai retiré tous les tests de présence, de déjà ouvert,
etc.. pour alléger et simplifier la compréhension
[CODE]
Dim oApp As Outlook.Application
Dim oMail As Outlook.MailItem
Dim leNameSpace As NameSpace
Dim leFolder As MAPIFolder

Dim wApp As Word.Application
Dim oWord As Word.Document

On Error GoTo GestErr

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(olMailItem)
Set oAttachement = oMail.Attachments
oMail.Body = "Test"
oMail.Subject = "Test"
oMail.To = ""
'je force l'ouverture d'Outlook
Set leNameSpace = oApp.GetNamespace("MAPI")
Set leFolder = leNameSpace.GetDefaultFolder(olFolderOutbox)
leFolder.Display
oMail.Display

docname = "C:test.doc"
Set wApp = New Word.Application
Set oWord = GetObject(docname, "Word.Document")
'Rend Word visible
oWord.Application.Visible = True
'je sélectionne tout le document Word
oWord.Select
wApp.Selection.Copy
'je remets au premier plan le mail
oMail.Display
oMail.Body = wApp.Selection


'Envoi le mail
oMail.Send
'je libère mais sciemment je ne referme ni Outlook ni Word
Set oWord = Nothing
Set wApp = Nothing
Set oMail = Nothing
Set oApp = Nothing
[/CODE]

Dans le corps je retrouve bien le contenu du document Word mais uniquement
le texte, pas les tableaux.
Comme Outlook et Word sont restés ouverts et que le texte sélectionné dans
Word est toujours sélectionné il me suffit dans le corps du mail de faire
"coller" et là je retrouve bien tout le contenu du document y compris les
tableaux !!!!

D'où ma question que dois-je faire ?
j'ai bien regardé sur le forum mais je ne trouve rien à ce sujet, ni dans
les cours.
J'ai essayé avec oMail.HTMLBody = wApp.Selection mais cela donne le même
résultat.
Donc si vous pouviez me donner soit un bout de code ou un lien j'en serais
ravi.
D'avance merci