Code VBA pour insérer des tableaux d'Excel dans word par un bouton

Bonjour

J'aimerai un Code VBA pour insérer des tableaux d'excel dans word par un bouton

Merci

Bonjour VinciHorus,

Peux-tu en dire plus ?

  • Le "Bouton" que tu veux est dans un doc WORD ou un classeur EXCEL ?
  • Le tableau EXCEL est-il nommé ?

Le mieux serait que tu fournisses une maquette de ton EXCEL et ton WORD.

le bouton est dans le classeur excel et le tableau excel varie

le fichier ci joint

40classeur1.xlsx (9.08 Ko)

Bonjour VinciHorus,

Encore une précision STP :

- Ton doc WORD préexiste-il et il s'agit d'insérer le tableau à un endroit précis du document ou bien faut-il créer le document WORD en y insérant le tableau ?

juste créer en y insérant le tableau

je beug depuis sur cela , arriver à maintenir le tableau(forcement faudra que le word soit en paysage)

Bonjour vinciHorus,

Le tableau tel que tu le présentes ne tient pas sur une page A4 en paysage...

Que voudrais-tu obtenir ?

Est ce qu'il serait possible d'avoir le code pour ce mode d'ouverture en paysage

Bonjour j'aimerai ouvrir le document en paysage avec le tableau inséré

Bonjour vinciHorus,

Ci-dessous le code pour insérer le tableau dans un nouveau document WORD (mais le tableau EXCEL que tu as soumis n'y tiens pas…même ne paysage) :

Option Explicit
Sub InsereTableauDansDoc()
    Dim oDoc As Object
    Dim oWord As Object
    Dim oRange As Range
    Dim booKO As Boolean
    Dim sFilename As String

    Set oWord = CreateObject("Word.Application")
    Set oDoc = oWord.Documents.Add
    With oDoc.PageSetup
        .Orientation = wdOrientLandscape
        .TopMargin = CentimetersToPoints(1.27)
        .BottomMargin = CentimetersToPoints(1.27)
        .LeftMargin = CentimetersToPoints(0.25)
        .RightMargin = CentimetersToPoints(0)
        .HeaderDistance = CentimetersToPoints(1.25)
        .FooterDistance = CentimetersToPoints(1.25)
    End With
    oWord.Visible = True

    Set oRange = ThisWorkbook.Names("TableauACopier").RefersToRange
    oRange.Copy
    oDoc.Paragraphs(1).Range.PasteExcelTable False, False, False
End Sub

Je joins aussi le classeur qui m'a servi pour le test .

29classeur1-gvs.xlsm (18.15 Ko)

J'ai omis de préciser que dans l'EXCEL, j'ai nommé le tableau "TableauACopier".

merci beaucoup

Bonjour,

Je suis également avec un problème d'export de tableau dans word. Après des heures de recherche, je ne trouve pas.

J'ai un code qui fonctionne pour insérer un tableau dans un nouveau fichier word. Cependant, j'aimerais que ce tableau soit positionné à un endroit précis d'un fichier existant. J'utilise des signets et cela fonctionne pour différentes cellules, mais pas pour le tableau. Ce tableau a un nombre de ligne qui n'est pas fixe. Je l'ai donc nommé "TableauPrix". Pouvez-vous corriger mon code? Après des heures de recherche, je ne trouve pas. Merci pour votre aide.

Voici la ligne qui pose problème: Document_Type.Bookmarks("Signet35").Range = "tableauPrix"

Code complet:

Sub Envoi_Word(Document As String)

Dim Application_Word As Object, Document_Type As Object 'Pour Word

Dim Chemin As String, Nom As String, i&

Dim dlgSaveAs

'Ouverture document Word et renseignement des signets

Set Application_Word = CreateObject("Word.Application") 'ouvre une session word

Set Document_Type = Application_Word.Documents.Open(ThisWorkbook.Path & "\" & Document & ".docx") 'ouvre le document Modèle Word

Application_Word.Visible = True 'affiche le Word mode Visualisation.

Select Case Document

Case "Courrier2"

Nom = "A " & Year(Ws3.Cells(DerLWs3, 2)) & " " & Ws3.Cells(DerLWs3, 1) & " " & Ws3.Cells(DerLWs3, 7) & " " & Ws3.Cells(DerLWs3, 18)

With Document_Type

For i = 2 To 11 'valeurs des cellules des colonnes 2 à 11

.Bookmarks("Signet" & i).Range = Ws3.Cells(DerLWs3, i + 5)

Next

End With

With Document_Type

For i = 21 To 22 'valeurs des cellules des colonnes 21 à 22

.Bookmarks("Signet" & i).Range = Ws3.Cells(DerLWs3, i - 18)

Next i

End With

Document_Type.Bookmarks("Signet30").Range = "DS/" & Ws3.Cells(DerLWs3, 20) & "/" & Year(Ws3.Cells(DerLWs3, 2)) & "/" & Ws3.Cells(DerLWs3, 1) ' soit initiales entreprise/initiales employé de feuille 3 colonne 20 / année de feuille 3 colonne 1)

Document_Type.Bookmarks("Signet31").Range = Ws3.Cells(DerLWs3, 2) 'essai d'ajout d'un signet n°31 pour envoyer la date reprise feuille 3 cellule 2

Document_Type.Bookmarks("Signet32").Range = Ws3.Cells(DerLWs3, 18) 'essai d'ajout d'un signet n°32 pour envoyer le contenu de la cellule 18 de la feuille 3 = "concerne"

'et pour ajouter signet 35 = TableauPrix nommé

Document_Type.Bookmarks("Signet35").Range = "tableauPrix"

End Select

'Activation de l'application Word et donc du fichier Word

Application_Word.Activate

'Changement du répertoire

Application_Word.ChangeFileOpenDirectory ThisWorkbook.Path

'Définit et ouvre la boite de dialogue "Enregistrer sous" avec le nom du fichier

Set dlgSaveAs = Application_Word.Dialogs(wdDialogFileSaveAs)

With dlgSaveAs

.Name = Nom

.Show

End With

MsgBox "Document Word ouvert", , "Info suivi"

End Sub

Rechercher des sujets similaires à "code vba inserer tableaux word bouton"