Coller sur word
Bonjour à tous,
Je souhaite copier des choses depuis excel et les coller sur word. Je maitrise la technique avec les signets, mais dans mon cas présent, il faut répéter l'opération plusieurs fois dépendamment de ce que demande l'utilisateur de la feuille excel.
Ce que je copie/colle c'est un tableau, son titre et des explications. C'est donc toujours la même forme et je veux les coller à la suite dans le document word.
J'ai deux options : soit générer automatiquement des signets, soit me placer à l'endroit que je souhaite et tout coller à la suite.
Mais pour cette deuxième option je ne sais pas comment faire. J'arrive à me placer où je veux avec un signet mais je n'arrive pas à coller ensuite.
Je suis aussi preneur si quelqu'un a la solution pour générer les signets.
Bonjour,
Voici quelques démo diverses et variées pour copier/coller des info xl dans word
Pierre
Je ne vois pas lequel je dois utiliser..
Il n'y a pas une simple fonction pour coller à la suite de la sélection ?
J'avance un peu grace à des choses que j'ai trouvé sur le forum et notamment tes posts @pierrep56.
J'arrive à manipuler ta fonction copie_tblo_dans_word mais quand je veux l'utiliser dans mon code principal elle ne marche pas. Voici ce code :
Sub Excel_vers_Word2()
Dim WordApp As Object, WordDoc As Object
Dim Ndf As String, NDF2 As String, Rep As String
Dim vaData As Variant
Dim tbl As Word.table
Dim table As Variant
Ndf = ActiveWorkbook.Path & "\TrameRetraite.docx" ' le doc modèle est placé dans le même dossier que le xlsm
Rep = ActiveWorkbook.Path & "\Compte rendus\" ' pour enregistrer le doc résultat dans un sous-dossier
If Not Exist_Fichier(Ndf) Then ' vérifie l'existence du doc modèle
MsgBox "Document 'modeleword.docx' manquant", vbExclamation, "ERREUR"
Else
If Not Exist_Rep(Rep) Then MkDir Rep ' vérifie l'existence du sous-dossier et le crée éventuellement
NDF2 = Rep & Now & ".docx" ' pour enregistrer le résultat
On Error Resume Next
If Fichier_IsOpen(Ndf) Then ' vérifie si le modèle est déjà ouvert
Set WordApp = GetObject(, "Word.Application")
Set WordDoc = WordApp.Documents(Ndf)
Else ' sinon ouvre l'appli word et le modèle
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(Ndf, ReadOnly:=False)
End If
With WordDoc
' Ajoute un premier tableau
.Paragraphs.Add
With .Paragraphs(.Paragraphs.Count - 1)
.Format.SpaceBefore = 2 ' règle le centrage vertical dans les cellules du tableau
.Format.SpaceAfter = 2 ' règle le centrage vertical dans les cellules du tableau
Set Rng = WordDoc.Range(Start:=.Range.Start, End:=.Range.Start)
End With
Copie_tblo_dans_word ActiveSheet.Range("N1:X10"), 0, ""
WordApp.Visible = True
End With
WordDoc.Application.ActiveDocument.SaveAs NDF2 ' enregistre le doc complété
WordApp.Visible = True ' ou bien : WordApp.Application.Quit ' pour fermer après remplissage
Set WordDoc = Nothing
Set WordApp = Nothing
MsgBox "Document word prêt"
End If
End SubSi avant mon with WordDoc je ne mets que :
Ndf = ActiveWorkbook.Path & "\TrameRetraite.docx"
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(Ndf, ReadOnly:=False)Ca fonctionne, mais je ne comprend pas ce qui bloque dans le code principal.
Je vous met le fichier en pièce jointe si ça peut vous être utile.