Copier EXCEL coller WORD

Bonjour,
J'ai un code qui me permet de copier des tableaux depuis EXCEL pour les coller sur un document WORD créé par mon programme. Seulement, je souhaiterai que vous m'aidiez à apporter une légère modifications à celui-ci. En effet, je souhaiterais faire un collage spécial, à savoir "Utiliser les styles de destination".

Je vous joins mon code aussi, si quelqu'un pouvait trouver cela, ça serait une grande aide pour moi !

Public Const wdLineBreak = 6

Sub Export_word()
    Dim NDF As String
    Dim WordApp As Object, WordDoc As Object
    Dim i As Integer, cl As Integer, lg As Integer

        NDF = ActiveWorkbook.Path & "\" & "Fiche_" & Format(Now(), "yyyymmdd_hhmm")
       
        On Error Resume Next
       
        Set WordApp = CreateObject("Word.Application")
        WordApp.Visible = True
       
        Set WordDoc = WordApp.Documents.Add
       
        With WordApp.Selection
            cl = Sheets("TAP").Range("IV1").End(xlToLeft).Column - 2
            For i = 1 To cl Step 4
                lg = Sheets("TAP").Cells(1, i).End(xlDown).Row
                Sheets("TAP").Range(Cells(1, i), Cells(lg, i + 3)).Copy
                .Paste
                .InsertBreak Type:=wdLineBreak
            Next i
        End With
       
        Application.CutCopyMode = False
        WordDoc.SaveAs NDF

        Set WordDoc = Nothing
        Set WordApp = Nothing
       
        MsgBox "Document Word créé"
       
End Sub


MERCI PAR AVANCE DE VOTRE TEMPS ET DE VOTRE AIDE ! ☺

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. copier un tableau excel dans word
    dans Word il y a collage spécial
    il suffit de cliquer sur coller avec les liaisons
    et prendre feuilel microsoft office excel objet

    1. Bonjour,
      Oui je sais, la "difficulté" étant de le faire avec VBA dans l'optique d'automatiser ce procédé peu importe le nom de tableau à copier.
  2. Personne ne voit quelque chose de réalisable là-dedans ? ☺
    1. Modérateur
      Bonjour,

      Il suffit de coller avec liaison...
      PasteSpecial link:=true

      J'ai également ajouté :
      WordApp.Quit
      pour fermer word. Mais ça c'est toi qui voit...

      Comme ceci :
      Public Const wdLineBreak = 6
      
      Sub Export_word()
          Dim NDF As String
          Dim WordApp As Object, WordDoc As Object
          Dim i As Integer, cl As Integer, lg As Integer
      
              NDF = ActiveWorkbook.Path & "\" & "Fiche_" & Format(Now(), "yyyymmdd_hhmm")
             
              On Error Resume Next
             
              Set WordApp = CreateObject("Word.Application")
              WordApp.Visible = True
             
              Set WordDoc = WordApp.Documents.Add
             
              With WordApp.Selection
                  cl = Sheets("TAP").Range("IV1").End(xlToLeft).Column - 2
                  For i = 1 To cl Step 4
                      lg = Sheets("TAP").Cells(1, i).End(xlDown).Row
                      Sheets("TAP").Range(Cells(1, i), Cells(lg, i + 3)).Copy
                      .PasteSpecial Link:=True
                      .InsertBreak Type:=wdLineBreak
                  Next i
              End With
             
              Application.CutCopyMode = False
              WordDoc.SaveAs NDF
              WordApp.Quit
              Set WordDoc = Nothing
              Set WordApp = Nothing
             
              MsgBox "Document Word créé"
             
      End Sub

      1. Bonjour,
        Tout d'abord je te remercie déjà de ton code !
        La sortie WORD que me propose ton code n'est pas très esthétique (pas de création de tableau sous forme de grilles). Je joins ici, le document WORD affiché après exécution du programme. Je ne sais pas si tu as une idée pour corriger cela ?

        https://www.cjoint.com/c/FEykaoyIPCf

        Merci à toi ! :)

        Bonne journée !
      2. Modérateur
        @Lils_BisBonjour,

        Avant de changer quoique ce soit, as tu essayé de mettre en forme ton tableau sous excel avant de déclencher ta macro?