Bonjour,
Je cherche à faire une copie via VBA Access du contenu d'un document Word dans un champ Mémo (et/ou d'un champ texte d'un document txt dans un champ Texte) sans passer par un copié collé manuel.
Merci de votre aide
JFD
Bonjour,
Je cherche à faire une copie via VBA Access du contenu d'un document Word dans un champ Mémo (et/ou d'un champ texte d'un document txt dans un champ Texte) sans passer par un copié collé manuel.
Merci de votre aide
JFD
Bonjour,
Ta question est trop vague : dans quel contexte ? Quel document ? Est-il ouvert ?
Donne un exemple concret.
Bjr,
Je suis en train de développer un petit programme me permettant de faire des mailings paramétrés en récupérant le corps des messages directement depuis des documents Word (ou txt) à inclure dans la partie htmlBody (ou body) outlook.
Pour ce faire j'ai créé une table comportant les différents éléments, sujets, to, cc ... et Body/HTMLBODY. Cela marche manuellement, en ouvrant un document et faisant un copier/coller. Les documents Word dans un champ mémo, les documents textes dans un champ texte.
L'idée est de les récupérer automatiquement dans les champs correspondants de ma table avec une procédure VBA sans les ouvrir mais en les récupérant à partir d'un FileDialog.
Merci
JFD
Ne serait-ce pas plus simple de récupérer, une fois pour toutes, tous tes morceaux de texte dans une table (avec des copier/coller) et de composer ensuite tes e-mails avec Access. Ça me paraît plus simple à réaliser et plus rapide à l’usage.
Certes, c'est plus simple, mais cela ne répond pas à mon problème qui est justement de pouvoir automatiser ce process, car il est destiné à être utilisé le plus automatiquement possible sur des documents nombreux variés pour des destinataires multiples. Et si dans un premier temps de développement je me contenterai d'un filedialog, par la suite, avec une table contenant les documents générés automatiquement par ailleurs, le programme devra aller cherche de lui même les documents à intégrer.
Je ne connais pas du tout VBA pour WORD, et pour le moment j'ai réussi à récupérer et ouvrir un document
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 Sub CopierDocumentWord() '********************* Dim AppWord As New Word.Application With AppWord .Documents.Open CurrentProject.Path & "\Test.Docx" .ActiveDocument.Select SendKeys "^A" SendKeys "^C" 'En rendant visible le document Word on peut faire un copié/collé '.Visible = True '*************************************** ' ' Je cherche à inclure ici un code me permettant de faire la copie du document en VBA ' équivalent du ^A ^C manuel ' '*************************************** End With End Sub
Bonjour JFDAccess, Claude,
Si j'ai bien compris la question, voici une solution. Un formulaire avec un champ mémo est nécessaire. Un bouton de commande pour copier le document. Voici le code:
Bonne journée
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 Option Compare Database Option Explicit Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Sub btnCopierWord_Click() Dim objWord As New Word.Application With objWord .Documents.Open "LeCheminPlusLeNomDuFichier" .Visible = True 'Juste si tu veux voir ce qui se passe en mode pas à pas .ActiveDocument.Select .Selection.Copy Me.TonChampMémo = "" Me.TonChampMémo.SetFocus DoCmd.RunCommand acCmdPaste .Documents.Close 'Ici c'est pour éviter le message Vous avez copier une grande quantité ... OpenClipboard 0 EmptyClipboard CloseClipboard .Quit End With Set objWord = Nothing End Sub
Partager