copier/coller dans le body d'outlook du contenu d'un fichier word
3 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <Bernard@discussions.microsoft.com> a écrit dans le message de
news:236E7EB1-8AC0-4ECD-ABA1-9938418780B9@microsoft.com...
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
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
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
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" <Bernard@discussions.microsoft.com> a écrit dans le message de
news:236E7EB1-8AC0-4ECD-ABA1-9938418780B9@microsoft.com...
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
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
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
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" <Bernard@discussions.microsoft.com> a écrit dans le message de
news:236E7EB1-8AC0-4ECD-ABA1-9938418780B9@microsoft.com...
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
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