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 :

Générer un doc WORD à partir de données excel via VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mars 2017
    Messages : 5
    Par défaut Générer un doc WORD à partir de données excel via VBA
    Bonjour,

    Après plusieurs recherches sur le net et ici, je n'arrive pas à résoudre mon problème que je vous expose (je précise que je suis débutante - voire très débutante en VBA, cependant j'apprends vite, il ne me manque que la logique d'initilisation).

    J'ai besoin de faire éditer des contrats par plusieurs personnes à qui on remettra un fiche à compléter (exemple de fichier excel joint). Sur cette base, les éléments complétés doivent générer le contrat à partir du document modèle exhaustif (exemple joint) : renseigner les champs "signets", puis ajouter les paragraphes en fonction des sélectionné (sur la base des "oui" dans le fichier excel).
    Je précise que les modèles sont simplifiés, le doc final fait une dizaine de pages en réalité.

    Je voudrais utiliser VBA pour lier les documents et développer, mais je ne connais pas du tout le code à appliquer, et je n'arrive pas à trouver de quoi m'aider. Est-ce que quelqu'un pourrait m'orienter svp ? Soit vers un tutoriel, soit en m'indiquant la méthode que je pourrai dupliquer ensuite ?

    J'ai créé tous les signets. Il me reste :
    - à lier les documents (pour l'instant c'est la dessus que je coince) ;
    - à remplir mes signets et sélectionner les paragraphes (je trouve plus d'éléments de réponse la dessus mais je veux bien un peu d'aide)

    Avec mes remerciements par avance
    N'hesitez pas à me demander si vous avez besoin d'infos complémentaires.

    Coline
    DOCUMENT EXEMPLE.docx
    exemple fichier Ex.xlsx

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Coline3007 Voir le message
    puis ajouter les paragraphes en fonction des sélectionné (sur la base des "oui" dans le fichier excel).
    Il serait plus judicieux de créer tous tes paragraphes dans ton modèle et de les supprimer en fonction des "non".
    Pour supprimer le paragraphe, le plus simple est d'appliquer un signet à tout le paragraphe ce qui te permettra de le repérer facilement.

    J'ai créé tous les signets. Il me reste :
    - à lier les documents (pour l'instant c'est la dessus que je coince) ;
    - à remplir mes signets et sélectionner les paragraphes (je trouve plus d'éléments de réponse la dessus mais je veux bien un peu d'aide)
    Dans VBA, on ne va pas "lier" les documents (à moins de vouloir les traiter façon mailing-list, mais pour ça pas besoin de VBA).

    Il suffit de place la valeur contenue dans la cellule Excel à l'emplacement signalé par ton signet.
    Personnellement, dans mes modèles Word, je mets dans le texte un mot contenant le nom du signet et j'applique le signet sur tout ce mot. Ca permet de repérer plus facilement les signets dans le modèle et de contrôler le format (police, taille, etc.).

    Exemple de remplacement du contenu d'un signet par une valeur de cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Dim DocDest As Word.Document
       Set DocDest = GetObject("MonFichier.docx")
       DocDest.Bookmarks("MonSignet").Range.Text = WorkSheets("MaFeuille").Range("A1").Text
    Bien sûr, il faut avoir intégré à ta macro la bibliothèque des objets Word.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 153
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Suivant la même idée que Menhir, il est possible dans Word de définir un caractère invisible (en VBA propriété Font.Hidden)
    Il suffirait donc de rendre invisible les paragraphes défini par la réponse Non dans Excel.
    Word adapte le document en n'affichant que les caractères visibles et renumérote le cas échéants les styles Titre
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Attention, ce qui est caché peut être à nouveau révélé.
    Un paragraphe masqué dans un document envoyé à un client (par exemple) n'empêchera pas celui-ci de le rendre de nouveau visible.
    J'ai une mésaventure semblable qui est arrivée à un collègue avec la gestion des modifications.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 153
    Billets dans le blog
    53
    Par défaut
    Bonjour Menhir,
    Attention, ce qui est caché peu être à nouveau révélé.
    Un paragraphe masqué dans un document envoyé à un client (par exemple) n'empêchera pas celui-ci de le rendre de nouveau visible.
    Tu as tout à fait raison mais comme je n'envoie que des documents pdf à mes clients, je n'ai pas pensé à la mise en garde
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 554
    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 554
    Par défaut
    Bonjour à tous

    Une solution par assemblage de documents contenants les paragraphes plutôt que des signets dans un seul document.
    http://www.excel-formations.fr/Trucs_astuces/WORD00.php

Discussions similaires

  1. [XL-2016] Générer un fichier type word à partir de données excel
    Par padao dans le forum Excel
    Réponses: 3
    Dernier message: 19/04/2016, 19h21
  2. Générer un fichier XML à partir de données Excel et d'un xsd
    Par outrun13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/10/2013, 16h40
  3. [Toutes versions] Générer un fichier XML à partir de données Excel et d'un xsd
    Par outrun13 dans le forum Excel
    Réponses: 1
    Dernier message: 19/10/2013, 01h04
  4. Ouvrir un doc word à partir d'excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/05/2008, 20h06
  5. Extration de données Excel via VBA
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/04/2007, 09h08

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