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

Macros et VBA Excel Discussion :

Déclarer et faire référence à un fichier Word déjà ouvert?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut Déclarer et faire référence à un fichier Word déjà ouvert?
    Bonjour à tous,
    voici mon problème: j'ai un fichier Excel et un fichier Word, avec lesquels je copie des données de mon fichier Excel dans des tableaux Word.

    Ma macro est stockée dans mon Excel.
    Mon fichier Word est un modèle qui aura toujours le même nom, appelons-le "Modèle.doc".

    J'ai le code pour copier les données, mais je ne sais pas comment faire référence à mon document Word depuis mon Excel (je débute).

    Comment faire pour faire référence à mon fichier Word (qui sera déjà ouvert à l'éxécution de la macro)? J'aimerais faire ce qui aurait donné si ça avait été un fichier Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Modele As Worksheet
     
    Set Modele = Workbooks("Modele.xls")
    mais pour mon Word.
    Comment déclare-t-on ceci en vba svp?

    A noter que j'ai bien activé la libraire Microsoft Word xx.xx qui va bien.

    Merci d'avance pour votre aide.
    Cordialement,
    M

  2. #2
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour

    à tester
    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
    On Error Resume Next
        Set W = GetObject(Class:="Word.Application")
        If W Is Nothing Then Set W = New Word.Application: W.Visible = True: Err.Clear
    On Error GoTo 0
    'W.ScreenUpdating = False
     
    W.Activate
    W.Documents.Open Filename:="Chemin de ton modèle"
    Set monDocWord = W.ActiveWindow
    Set S = monDocWord.Selection
    S.TypeText "ok"
     
     
    'après tu utilises monDocWord pour manipuler ton document
    'monDocWord.Save
     'monDocWord.Close
    'W.Quit
    Set W = Nothing
    Set monDocWord = Nothing
    Set S= Nothing
    @+

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Tu peux essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Wd As Word.Document
    Set Wd = GetObject("Modele.doc")
    Tu peux également trouver plus d'info concernant la manipulation d'un document Word dans la FAQ

  4. #4
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Citation Envoyé par fring Voir le message
    Bonjour,

    Tu peux essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Wd As Word.Document
    Set Wd = GetObject("Modele.doc")
    Tu peux également trouver plus d'info concernant la manipulation d'un document Word dans la FAQ
    Merci pour votre aide.

    Fring, j'ai utilisé le code suivant (qui correspond exactement à ce que je cherche) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TestWord()
     
     
        Dim Wd As Word.Document
     
            Set Wd = GetObject("Modele.doc")
     
     
    End Sub
    Et j'obtiens un message d'erreur "Erreur automation Syntaxte incorrecte";
    le débuggueur me surligne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Wd = GetObject("Modele.doc")
    , pourtant c'est bien le code qui apparaît aussi dans la FAQ?!

    Pour information j'utilise Excel 2002 et Word 2002.Comme je l'ai déjà précisé, la librairie Word est activée.

    Merci d'avance pour votre aide,
    M

  5. #5
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut drthodt,

    tu dois remplacer "Modele.doc" par le nom complet de ton modèle.

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Wd As Word.Document
    Set Wd = GetObject("C:\My Documents\Mon_Modele.doc")
    Dans ce cas cela devrait marcher.

    Regarde aussi dans la faq, par exmple à http://vb.developpez.com/faqvba/?page=4.2#OpenTemp

    Bye.

  6. #6
    Membre confirmé
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Par défaut
    Effectivement avec le chemin je n'ai plus le message d'erreur, mais cela m'oblige à toujours mettre le fichier au même endroit, n'eest-il pas possible de faire référence à ce document qu'à partir de son nom?Sachant qu'il sera obligatoirement ouvert lors de l'exécution de la macro?

    Autre chose: je ne parviens pas à copier les données de mon Excel vers Word, toujours en utilisant le code de la FAQ pour copier les données de Excel vers un tableau Word, il ne se passe RIEN; voici le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub worde()
     
        Dim FL As Worksheet
        Dim Wd As Word.Document
     
     
            Set FL = ThisWorkbook.ActiveSheet
            Set Wd = GetObject("C:\Template Reporting.doc")
     
            Wd.Tables(1).Columns(1).Cells(1).Range.Text = FL.Range("A1")
     
    End Sub
    A part que je n'ai plus le message d'erreur, aucune donnée n'est recopiée dans mon tableau.

  7. #7
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    En effet je ne l'avais pas testé et j'ai obtenu la même erreur que toi.

    J'ai testé ceci avec un document "testwd.doc" ouvert et là pas de pb
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Dim Wd As Word.Document
    Set Wd = Word.Documents("testwd.doc")
     
    Wd.Tables(1).Columns(1).Cells(3).Range.Text = Range("A1")
    End Sub

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Dans word, ce n'est ni cells ni columns, la syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Table(1).Cell(Row:=1, Column:=2)...

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

Discussions similaires

  1. [WD-2003] Faire de 10 fichiers WOrd un fichier PDF
    Par FCL31 dans le forum Word
    Réponses: 8
    Dernier message: 08/04/2011, 09h24
  2. Verifier qu'un fichier Word est ouvert à partir de VBA Excel
    Par dimitrios dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 07/01/2009, 17h37
  3. Savoir si un fichier word est ouvert
    Par enchanté dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/01/2008, 10h54
  4. Réponses: 5
    Dernier message: 03/08/2006, 16h56
  5. Faire référence au fichier jar la contenant
    Par Pill_S dans le forum Applets
    Réponses: 4
    Dernier message: 23/05/2005, 14h38

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