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 :

Remplir un document Word à partir d'Excel


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Remplir un document Word à partir d'Excel
    Bonjour, je sais que ce sujet à déjà été largement traité mais je n'ai pas trouvé de réponse à mon problème malgré tous les site que j'ai visité.
    J'ai donc besoin de votre aide.

    Je dois à partir d'un document Excel très grandement fourni, remplir un document Word.
    Le document excel possède près de 800 lignes, et je dois remplir un même document Word avec les informations contenu dans toutes ces lignes.
    J'ai déjà écrit auparavant des macros pour écrire dans Word, pour remplacer des mots du document par d'autres, mais cette fois toutes les informations de l'Excel doivent suivre un même schéma, et c'est la que je bloque, comment spécifier à Word à partir d'une macro Excel les emplacements dans lesquelles je veux écrire?
    Je voudrais que mon Word ressemble un peu à ça:
    |n° de prix |Désignation | Unité | Prix | (ceci est censé représenter un tableau)
    | | description | |
    | | description | |
    ce bloc serait composé des information contenu sur une ligne Excel et il doit y avoir un bloc par ligne.

    la ligne suivante doit commencer bien évidemment, une ligne en dessous de la dernière ligne de description et non pas juste en dessous du n°de prix précedant

    Je vous joins des fichiers test, des documents concernés si ça peut aidé (et je sais que ça aidera)

    Merci pour votre aide!


    Test biblio.xlsx
    Word Biblio.docx

  2. #2
    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,

    Essaie d'être plus clair, parce que j'ai pas compris ta demande.
    Parce qu'avec ce que tu nous donnes, je ne vois qu'une colonne d'Excel se retrouver en Word avec des cellules "une pour une".
    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 !

  3. #3
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonjour, d'abord merci de t'intéresser à mon problème

    Effectivement mes dossiers joints n'étaient pas très clairs, je les les améliorés pour montrer le résultat que j'aimerais avoir.

    Le principe est de mettre à la suite les informations du tableau excel, mais l'idéal serait de ne pas avoir plusieurs lignes de tableau. L'intérêt du tableau se trouve seulement dans l'apport des colonnes.
    Mais c'est la que ça se complique, comment respecter la mise en forme, un prix fait une ligne dans sa propre colonne quand la description peut en faire 50, comment commencer le prochain ajout sur une nouvelle ligne à la hauteur de la dernière ligne de la description?

    Test biblio.xlsm
    Word Biblio.docx

  4. #4
    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,

    Sous cette forme, ce sera très compliqué, tenir compte du nombre de lignes pour toutes les colonnes.
    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 !

  5. #5
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    C'est bien ce que je me disais :/
    Du coup je suis forcé d'utiliser les lignes du tableau, ce sera moins joli mais ça fera le job, d'où une toute petite question,
    est-ce que si je crée un tableau à la main sous Word, je pourrais le piloter depuis une macro Excel en gardant la mise en forme? Ajouter des lignes telles qu'elles sont paramétrées?
    Je pense que oui, mais je ne sais pas si les fonctions pour gérer un tableau Word sont les mêmes que pour Excel

    Merci!

  6. #6
    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,

    Oui, sans problème.

    Je ne vois pas en quoi utiliser des lignes pose problème. Il suffit de ne pas mettre de ligne de séparation.
    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 !

  7. #7
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Cela ne pose aucun problème, seulement une question d’esthétique, le document Word créé var servir de document officiel dans mon boulot, j'aurais juste voulu qu'il ne soit pas rempli des barres noires qui forment les lignes
    j'ai réussi à importer les info que je voulais ou je voulais, en laissant le choix à l'utilisateur de mettre les lignes qu'il souhaite, cependant les passages en gras ne sont pas gardés, comment puis-je garder la mise en forme du texte importé?

    Je vous envois une nouvelle fois mes documents, encore merci pour le temps que tu consacres à mon projet!

    Base BPU.docx
    Test biblio.xlsm

  8. #8
    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,

    Sans avoir testé, mais je pense que pour garder une mise en forme, il faut un copier coller.
    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 !

  9. #9
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonjour je reviens vers toi car je ne comprends pas ce qui m'arrive,

    J'utilisais ces ligne pour remplir mon tableau dans word:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With WordDoc.Tables(1)
                .Cell(WordDoc.Tables(1).Rows.Count, 1).Range.InsertAfter Sheets(1).Range("B" & i).Value
                .Cell(WordDoc.Tables(1).Rows.Count, 2).Range.InsertAfter Sheets(1).Range("C" & i).Value & Chr(13) & Chr(13) & Sheets(1).Range("E" & i).Value & Chr(13)
                .Cell(WordDoc.Tables(1).Rows.Count, 3).Range.InsertAfter Sheets(1).Range("D" & i).Value
                .Rows.Add
       End With
    Mais comme je l'ai dit, la mise en forme n'est pas gardée, j'ai donc tenté comme tu me l'as conseillé de faire un copier-coller en écrivant pour une cellule:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets(1).Range("C" & i).Select
            Selection.copy
            WordDoc.Tables(1).Cell(WordDoc.Tables(1).Rows.Count, 1).Select
            Selection.PasteSpecial
    Cette syntaxe a toujours fonctionné pour mes programmes limités à excel, la marche à suivre est-elle différente sur Word?

  10. #10
    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,

    Si un objet selection existe pour Excel, le même objet existe pour Word et si on ne spécifie pas que c'est la sélection de Word qui est à prendre en compte, c'est celle d'Excel qui est utilisée.
    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 !

  11. #11
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Désolé mais je ne comprend pas bien t'as réponse, en l’occurrence il me semble que j'ai bien spécifié ce qui était à prendre en compte à chaque fois:

    Je sélectionne la cellule d'Excel que je veux copier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(1).Range("C" & i).Select
    Je copie:
    Je sélectionne la cellule du tableau word dans laquelle je veux coller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cell(WordDoc1.Tables(1).Rows.Count, 1).Range.Select
    Et je colle:
    Et pourtant rien ne se passe.

    Veux tu dire qu'il y a une erreur dans ma syntaxe? Si oui laquelle?
    Ou bien n'est ce tout simplement pas la bonne méthode pour un collage sur word?

  12. #12
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Effectiement, tu utilises Selection dans les 2 cas mais tu ne précises pas si c'est celui d'Excel ou de Word.
    Crée un objet sélection dans Word wdselectionwd par exemple et de même dans Excel xlselectionxl par exemple.
    Ensuite essaies de copier et coller avec ces objets, cela évitera les confusions.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  13. #13
    Candidat au Club
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Juillet 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paramétreur de progiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2015
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi à récupérer la mise en forme en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets(1).Range("B" & i).Copy
    With WordDoc1.Tables(1)
    .Cell(WordDoc1.Tables(1).Rows.Count, 1).Range.Paste
    End With
    Mais je ne sais pas exactement pourquoi la première syntaxe ne fonctionnait pas.

    Merci pour votre aide Heureux-oli et carden752!

  14. #14
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    la première syntaxe ne marchait pas car tu ne précises pas que tu utilises l'objet selection de Word ou d'Excel.
    Pour cela, il te faudra à minima utiliser un worddoc.activate ou un activeworkbook.activate.

    Mais il est plus propre comme je te le suggérait d'utiliser un objet selection précisant l'application utilisée, cela évite les confusions.
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

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

Discussions similaires

  1. [WD-2007] Réalisation d'un document word à partir d'une base Excel
    Par FanTasTik dans le forum VBA Word
    Réponses: 9
    Dernier message: 21/08/2012, 16h14
  2. [WD-2007] lancer le document word à partir d'excel
    Par mankadil dans le forum Word
    Réponses: 6
    Dernier message: 19/03/2012, 19h29
  3. Remplir un document WORD à partir de JAVA
    Par benznaim dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 19/04/2011, 12h50
  4. remplir un document word et excel sans l'ouvrir
    Par tomy7 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 06/03/2008, 15h54
  5. fenetre enregistrer sous document word à partir d'excel
    Par Australia dans le forum VBA Word
    Réponses: 8
    Dernier message: 24/10/2006, 18h53

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