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 :

Macro pour créer des fichiers Word à partir d'un fichier "maître"


Sujet :

VBA Word

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 20
    Points : 25
    Points
    25
    Par défaut Macro pour créer des fichiers Word à partir d'un fichier "maître"
    Bonjour à tous,

    Je sollicite votre aide pour un problème que je rencontre sur Word.

    J'ai un fichier "maître" (référence) à partir duquel j'aimerais créer d'autres fichiers Word (ce sont les mêmes que le fichier maître mais je supprime certaines sections, je fais en quelque sorte un filtre sur ce que je veux).

    Mon problème c'est que ma macro est dans mon fichier maître donc quand je crée mon premier fichier, je change le nom du fichier maître via SaveAs puis je le ferme à la fin ce qu'il fait que la macro s'arrête...

    Je voulais utiliser FileCopy pour copier mon fichier maître et ensuite faire les modifications dans le fichier copié mais on ne peut pas faire de FileCopy sur un fichier qui est ouvert.

    La seule solution que je vois qui n'est pas ma préférée, c'est de copier à la main le fichier maître X fois et ensuite de les ouvrir et de les modifier par macros.

    Sinon est-ce qu'il est possible de créer un nouveau document Word, de copier-coller le contenu (texte, template, etc.) du fichier maître dans ce nouveau fichier puis de retirer ce que je veux ?

    Ou est-ce que je mets ma macro directement dans Word plutôt que dans le fichier maître ?

    Un extrait de la macro :


    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
    Sub ManuelTous()
     
        Dim i As Integer
        Dim NomFichier(3) As String, ManuelAdmin As String
     
        i = 1
        ManuelAdmin = ActiveDocument.FullName
     
        NomFichier(1) = ActiveDocument.Path & "\" & "BLABLA1.docx"
        NomFichier(2) = ActiveDocument.Path & "\" & "BLABLA2.docx"
        NomFichier(3) = ActiveDocument.Path & "\" & "BLABLA3.docx"
     
    For i = 1 To 3
     
        ' Enregistrer sous nouveau nom (je pense que je devrais peut-être le faire à la fin de la macro avant le close)
        ActiveDocument.SaveAs FileName:=NomFichier(i)
     
        ' Réouverture du fichier maître
        Documents.Open ManuelAdmin
     
        ' Focus sur le fichier enregistré sous précédemment
        Documents(Right(NomFichier(i), Len(NomFichier(i)) - Len(ActiveDocument.Path & "\"))).Activate
     
        ' Modification du document
        ...
        ...
     
        ' Fermeture du document
        ActiveDocument.Close
     
    Next i
     
     
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Points : 10 166
    Points
    10 166
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je ne suis pas certain d'avoir bien compris le problème. Mais, si tes fichiers finaux ne doivent pas contenir les macros, le plus simple me semble de prendre ton fichier-maître et de l'enregistrer comme modèle avec des macros. Ensuite un double-clic sur l'icône du modèle, lance Word avec ce modèle-là. Une fois le document terminé, tu l'enregistres sous un autre nom.

    Sinon VBA, permet d'insérer des macros dans un document Word à partir d'un autre document; moyennant des modifications aux paramètres de sécurité sur toutes les applications Word devant utiliser ce fichier.

    Donc, la suite semble être liée au besoin d'avoir ou non les macros dans tes documents finaux.

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 524
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 524
    Points : 16 460
    Points
    16 460
    Par défaut
    Bonjour

    En général on fait l'inverse : on construit un document d'assemblage de documents constituants.

    Cela peut même se faire sans macro : un exemple ici http://www.excel-formations.fr/Trucs_astuces/WORD00.php

    Mais tu peux reprendre l'idée et gérer les INCLUDETEXT par VBA.

    Dans ce cas met le code dans un autre document WORD que celui qui ne doit pas en contenir.

Discussions similaires

  1. [XL-2013] Macro pour créer des courbes
    Par Nymar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/09/2014, 22h15
  2. Créer un fichier word à partir d'un fichier PHP
    Par crush911 dans le forum Langage
    Réponses: 3
    Dernier message: 29/10/2013, 17h07
  3. Cacher plusieurs fichiers Word dans un seul fichier Word.
    Par Betadine dans le forum VBA Word
    Réponses: 7
    Dernier message: 06/10/2011, 17h30
  4. macro pour créer des graphiques
    Par Sebastien_INR59 dans le forum Access
    Réponses: 1
    Dernier message: 07/06/2006, 10h44
  5. Réponses: 1
    Dernier message: 25/03/2006, 15h45

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