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

VBA Access Discussion :

Copie du contenu d'un document Word dans une champ mémo


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2010
    Messages : 136
    Par défaut Copie du contenu d'un document Word dans une champ mémo
    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

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    Bonjour,

    Ta question est trop vague : dans quel contexte ? Quel document ? Est-il ouvert ?

    Donne un exemple concret.

  3. #3
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2010
    Messages : 136
    Par défaut
    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

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Par défaut
    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.

  5. #5
    Membre confirmé
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2010
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Juin 2010
    Messages : 136
    Par défaut
    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

  6. #6
    Membre Expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 887
    Par défaut
    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:
    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
    Bonne journée

Discussions similaires

  1. [Débutant] VBnet 2010 Comment copier le contenu de plusieurs documents words dans un seul ?
    Par antoine.deshayes dans le forum Accès aux données
    Réponses: 0
    Dernier message: 28/07/2012, 14h54
  2. Réponses: 5
    Dernier message: 10/05/2010, 16h36
  3. VBA: Insérer le contenu d'un document word dans un autre
    Par kabbajreda dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/08/2007, 18h56
  4. Importer un document Word dans une table Access
    Par emeraudes dans le forum Access
    Réponses: 7
    Dernier message: 03/06/2006, 09h53
  5. insertion document word dans une page
    Par maysa dans le forum Langage
    Réponses: 4
    Dernier message: 09/03/2006, 09h07

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