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 :

Copier des données d'un tableau excel vers un tableau word(gabarit)


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Points : 24
    Points
    24
    Par défaut Copier des données d'un tableau excel vers un tableau word(gabarit)
    Bonjour, je demande de l'aide a ceux qui peuvent m'aider

    voilà j'ai un fichier word (gabarit) et un fichier excel, avec ces deux fichier je voudrais copier les données de mes cellules du tableau excel vers word

    Dans mon fichier word j'ai le même tableau que celui du fichier excel, l'idée est de garder la même mise en page de mon tableau excel

    Donc es-ce que c'est possible de copier les données des lignes du tableau excel vers le tableau word

    Donc je voudrais que a chaque fois que la macro copie une ligne du tableau excel vers word qu'elle garde la même bordure quelle contient

    voici en piece joint mes deux fichier
    Fichiers attachés Fichiers attachés

  2. #2
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Points : 111
    Points
    111
    Par défaut
    Salut,

    il faut placer des signets dans ton fichier word la ou tu veux que les donnees de ton tableur excel s'affiche dans word.

    Voici une fonction que j'utilise pour cela et qui marche a merveille - tu peux l'adapter a tes besoins.

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub Transfer_To_Word_Dynamic()
     
    Dim WordApp As Word.Application
    Dim WordDoc As Word.Document
    Dim i As Byte
     
        For i = 2 To Sheets("Data Owners").Cells(Rows.Count, 1).End(xlUp).Row
            Set WordApp = CreateObject("word.application")    'Open a word session
            Set WordDoc = WordApp.Documents.Open("Nomdevotrefichier.doc")    'ouvre le document Word
            WordApp.Visible = False    'Word is not visible during the operation
     
            'we named the bookmarks in the word doc as followed : Signet1 , Signet2 , Signet3
            WordDoc.Bookmarks("Signet1").Range.Text = Sheets("Data Owners").Cells(i, 1)
            WordDoc.Bookmarks("Signet2").Range.Text = Sheets("Data Owners").Cells(i, 4)
            WordDoc.Bookmarks("Signet3").Range.Text = Sheets("Data Owners").Cells(i, 11)
     
            ' Creation de signet automatique dans word a partir de Excel et ajout de ligne automatique dans tableau word
    'Fill-in the rest of the signet depending on the values from column 38 to 53
            k = 7 ' next signet to create
            w = 2 ' next line in table(5) of the word document
            For j = 38 To 53
            If Sheets("Data Owners").Cells(i, j) <> "" Then
            k = k + 1
            w = w + 1
            WordDoc.Tables(5).Rows.Add
            WordDoc.Tables(5).Rows(w).Cells(1).Select
            With WordDoc.Bookmarks
            .Add Name:="Signet" & k
            .DefaultSorting = wdSortByName
            .ShowHidden = False
            End With
            WordDoc.Bookmarks("Signet" & k).Range.Text = Sheets("Data Owners").Cells(i, j)
            Else
            Exit For
            End If
            Next
    'mettre a jour dynamiquement l'entete et le bas de page de mon document word        
    WordDoc.Bookmarks("Signet_Footer").Range.Text = "DML640_MOCK3_Validation_" + Sheets("Data Owners").Cells(i, 34) + "_" + Sheets("Data Owners").Cells(i, 35) + "_v1.doc"
     
            WordApp.Visible = True    'Open the word document
            'WordDoc.PrintOut 'To print the doc document
            WordDoc.SaveAs ("nouveaunomdefichier.doc")' pouvz aussi sauvegarder le meme fichier
            WordDoc.Close True 'Save and close the word document
            WordApp.Quit 'Open the word session
     
        Next i
     
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Points : 24
    Points
    24
    Par défaut
    merci

    Mais j'ai erreur dans le programme

    il met une erreur sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim WordApp As Word.Application

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    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 421
    Points : 16 265
    Points
    16 265
    Par défaut
    Bonjour

    Dans VBE, Menu Outils, Références, cherche Microsoft Word et coche la ligne.

    Mais, question subsidiaire, pourquoi ne pas tout simplement copier coller le tableau Excel ? Cela crée un tableau Word avec la mise en forme de l'original.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Membre à l'essai
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Points : 24
    Points
    24
    Par défaut
    Merci

    Oui c'est ce que j'ai comme macro actuellement, elle copie mon tableau excel vers word, mais mon probleme c'est que lorsque mon tableau est inséré dans word , il me faut quelque ajustement, comme centre le tableau, supprimer les espace entre le paragraphes et parfois j'ai des beug d'insertion, mon tableau s'étire dans la page word

Discussions similaires

  1. Copier des données d'une feuille excel vers plusieurs autres
    Par LeeBamboo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/08/2008, 15h46
  2. Réponses: 3
    Dernier message: 24/05/2008, 18h56
  3. Copier des données d'un fichier Excel vers des tableau Word
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2008, 14h57
  4. Réponses: 1
    Dernier message: 14/05/2007, 14h52
  5. Importer des données d'une feuille Excel vers TABLE
    Par souminet dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/11/2006, 09h10

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