Copier EXCEL coller WORD

Lils_Bis Messages postés 65 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. jfqld Messages postés 8725 Date d'inscription   Statut Membre Dernière intervention   127
     
    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

    0
    1. Lils_Bis Messages postés 65 Statut Membre
       
      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.
      0
  2. Lils_Bis Messages postés 65 Statut Membre
     
    Personne ne voit quelque chose de réalisable là-dedans ? ☺
    0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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

    0
    1. Lils_Bis Messages postés 65 Statut Membre
       
      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 !
      0
      1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773 > Lils_Bis Messages postés 65 Statut Membre
         
        Bonjour,

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