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 Word Discussion :

Insérer un fichier Word dans un fichier Word depuis Access


Sujet :

VBA Word

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Insérer un fichier Word dans un fichier Word depuis Access
    Bonjour à tous

    Grace au tuto de Heureux-oli j'ai créer le code suivant :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Private Sub CmdMarge_Click()
    Dim rs As Recordset
    Dim db As Database
    Dim SQL As String
    Dim aWapp As Word.Application
    Dim chemin As String
     
    chemin = "D:\Company Shared Folders\Secure BD"
    Set wApp = New Word.Application
    wApp.Visible = True
    wApp.Documents.Add Template:=chemin & "\Fax.dot", NewTemplate:=False, DocumentType:=0
     
    SQL = "SELECT * FROM Rq_Secure WHERE Réf_Sinistre=" & Chr(34) & Me.Réf_Sinistre & Chr(34) & "AND Ville=" & Chr(34) & Me.Ville & Chr(34)
     
    Set db = CurrentDb
    Set rs = db.OpenRecordset(SQL)
     
    While Not rs.EOF
        With wApp
            .ActiveDocument.Bookmarks("Sinistre").Range.Text = rs.Fields("Réf_Sinistre")
            .ActiveDocument.Bookmarks("Contrat").Range.Text = rs.Fields("n°Police")
            .ActiveDocument.Bookmarks("Conces").Range.Text = rs.Fields("Conces_Concessionnaire")
            .ActiveDocument.Bookmarks("Fax").Range.Text = rs.Fields("Fax")
            .ActiveDocument.Bookmarks("Nom").Range.Text = rs.Fields("Nom")
            .ActiveDocument.Bookmarks("Client").Range.Text = rs.Fields("Client_Utilisateur")
            .ActiveDocument.Bookmarks("Type").Range.Text = rs.Fields("Type_Machine")
            .ActiveDocument.Bookmarks("Modele").Range.Text = rs.Fields("Désignation")
            .ActiveDocument.Bookmarks("Serie").Range.Text = rs.Fields("N°_de_série")
            .ActiveDocument.Bookmarks("Date_Appel").Range.Text = rs.Fields("Date_appel_en_GTI")
            .ActiveDocument.Bookmarks("Nom_2").Range.Text = rs.Fields("Nom")
        End With
        rs.MoveNext
    Wend
     
    Set rs = Nothing
    Set db = Nothing
     
    End Sub
    Ce code marche

    En fait mon fax (Fax.dot) est un fax type :
    Ma BDD renseigne une partie du courrier : Destinataire, n° fax; Objet, ...

    Toutefois, il manque le contenu même du fax.
    Pour mettre ce contenu, une fois dans mon fichier Word, j’insère un autre fichier Word au milieu du doc pour compléter mon fax.

    Je suppose que vous voyez la question arriver qui est:
    Comment depuis Access, à l'aide d'une éventuelle lite déroulante, je peut insérer un fichier Word dans mon fichier Word Fax.dot ?

    Je sais pas si j'ai été clair mais si quelqu'un a compris, merci d'avance de votre aide.

    PS : dans mon code, si il me manque une donnée dans ma BDD pour un Signet, j'ai une erreur (normal).
    Comment puis-je éviter cette erreur ?

    Bonne journée

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,
    haaa l'automation... on est un peu perdu !

    Bref ! C'est du code VBA Word.
    Donc il te faut poster dans VBA Word.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    La première étape est l'insertion d'un champ IncludeText qui recevra le chemin du fichier.

    Pour le chemin du fichier, il te suffit d'avoir un déroulant avec les choix que tu souhaites.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activedocument.Fields.Add Range:=Selection.Range, type:=wdFieldIncludeText, text:="C:\\temp\\a.doc"
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  4. #4
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Bonjour

    Merci de votre réponse

    A force de chercher, j'ai trouver ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Wapp.Selection.InsertFile _
                             Filename:="D:\Company Shared Folders\Secure BD\Bloc_Courrier_Fax\" & Me.Modifiable6.Column(1), _
                             Range:="", _
                             ConfirmConversions:=False, _
                             Link:=False, _
                             Attachment:=False
    que j'ai rajouté à la fin du code de j'ai posté sur mon premier post (juste après le wend) dans ACCESS.


    J'ai aussi ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Document_New()
    Selection.GoTo What:=wdGoToBookmark, Name:="Bloc"
    End Sub
    dans mon fichier WORD

    Et on dirait que sa veu bien marcher

    J'ai pas essayé ton code Heureux-oli mais maintenant que j'en ai deux, lequel est le mieux ???

    Mais j'ai toujours mon problème qui est que si dans ma BDD ACCESS, le renseignement d'un Signet WORD est manquant, sa plante.
    Comment puis-je résoudre se problème ??

    J'ai un autre problème sur le même doc WORD mais je vais créer un nouveau sujet.

    Merci de votre aide

    A+

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Citation Envoyé par FCL31 Voir le message
    Mais j'ai toujours mon problème qui est que si dans ma BDD ACCESS, le renseignement d'un Signet WORD est manquant, sa plante.
    Comment puis-je résoudre se problème ??
    En ajoutant le signet manquant.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Sur WORD le signet est présent mais c'est sur ACCESS qu'il est possible que le champ d'un des signet est nul

    Par exemple, dans mon code du premier post, on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            .ActiveDocument.Bookmarks("Type").Range.Text = rs.Fields("Type_Machine")
    -Type = le nom du signet dans WORD
    -Type_Machine = Nom de champ de la requête où se trouve les données dans ACCESS
    Si dans l'enregistrement utilisé sur le moment, il n'y a pas de Type_Machine renseigné dans ACCESS, sa plante.

    Il faudrait un truc du style que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If IsNull(rs.Fields("Type_Machine")) then
    .ActiveDocument.Bookmarks("Type").Range.Text = ""
    End If
    Mais il faudrait le faire pour chaqu'un des signets (sans être sur que ce code soit bon).

    Je pense qu'il doit y avoir un moyen plus simple pour le faire.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Peut-être avec Nz() ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Bonjour Heureux-oli

    Voici le code que j'ai fais avec Nz()
    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
    While Not rs.EOF
        With Wapp
            .ActiveDocument.Bookmarks("Sinistre").Range.Text = Nz(rs.Fields("Réf_Sinistre"), " ")
            .ActiveDocument.Bookmarks("Contrat").Range.Text = Nz(rs.Fields("n°Police"), " ")
            .ActiveDocument.Bookmarks("Conces").Range.Text = Nz(rs.Fields("Conces_Concessionnaire"), " ")
            .ActiveDocument.Bookmarks("Fax").Range.Text = Nz(rs.Fields("Fax"), " ")
            .ActiveDocument.Bookmarks("Nom").Range.Text = Nz(rs.Fields("Nom"), " ")
            .ActiveDocument.Bookmarks("Client").Range.Text = Nz(rs.Fields("Client_Utilisateur"), " ")
            .ActiveDocument.Bookmarks("Type").Range.Text = Nz(rs.Fields("Type_Machine"), " ")
            .ActiveDocument.Bookmarks("Modele").Range.Text = Nz(rs.Fields("Désignation"), " ")
            .ActiveDocument.Bookmarks("Serie").Range.Text = Nz(rs.Fields("N°_de_série"), " ")
            .ActiveDocument.Bookmarks("Date_Appel").Range.Text = Nz(rs.Fields("Date_appel_en_GTI"), " ")
            .ActiveDocument.Bookmarks("Nom_2").Range.Text = Nz(rs.Fields("Nom"), " ")
            .ActiveDocument.Bookmarks("Interv").Range.Text = Nz(rs.Fields("Interventiuon"), " ")
        End With
        rs.MoveNext
    Wend
    Je sais pas si c'est vraiment se que tu voulais que je face (je n'ais jamais utililser Nz() avant) mais pour le moment, j'ai pas eu de plantage.

    Tu peu me confirmer si le code est bon STP.

    Merci pour ton aide

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    L'intellisense te donne la syntaxe, si tu la respecte, c'estbon et comme tu n'as pas d'erreur, je pense que ça devrait le faire.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Beaucoup

    Je jamais je rencontre un problème, je te recontacte

    Merci
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/03/2011, 23h40
  2. Réponses: 2
    Dernier message: 16/06/2009, 16h04
  3. Réponses: 5
    Dernier message: 13/05/2009, 11h05
  4. Inserer un fichier word dans un tableau word
    Par Homer091 dans le forum VBA Word
    Réponses: 2
    Dernier message: 15/05/2008, 18h17
  5. Réponses: 18
    Dernier message: 29/04/2008, 16h29

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