Copier coller des données de Excel vers word
Bonsoir
Je me demande comment faire en vba pour copier une selection de la plage C7 à D 11 de ma feuille de calcul nommée ( feuil2)
vers un document word nommée ( recepteur ), en fait executer une macro pour pouvoir recopier cette selection tout simplement .
Merci pour votre aide ou tout conseil .
Bonsoir,
A copier dans un module standard :
Option Explicit
Sub exportPlageVersWord(rngData As Range, sUrlFichierWord As String)
'Déclaration des objets Word
'Nécessite d'activer la référence Microsoft Word xx.x object library
'(dans la fenêtre VBE, cliquez sur Outils, Référénces et cocher la référence)
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
'Copie de la plage
rngData.Copy
'Ouverture du document word
Set wdDoc = wdApp.Documents.Open(sUrlFichierWord)
wdApp.Visible = True
wdDoc.Activate
'Collage
wdDoc.ActiveWindow.ActivePane.Selection.PasteAndFormat (wdPasteDefault)
'Vidage de la mémoire des objets
Set wdDoc = Nothing
Set wdApp = Nothing
End SubUtilisation de la procédure, (à coller dans un module type feuille)
Dans mon exemple je l'ai appliqué sur un bouton.
Option Explicit
Private Sub CommandButton1_Click()
Dim rngPlageAcopier As Range
Dim sUrlFichierWord As String
'A paramétrer selon ton utilisation
With ThisWorkbook.ActiveSheet
Set rngPlageAcopier = .Range(Range("D1").Value)
sUrlFichierWord = .Range("D2").Value
End With
'Utilisation de la procédure
exportPlageVersWord rngPlageAcopier, sUrlFichierWord
End SubJe t'ai mis mon exemple en pièce jointe
ps: attention, comme je l'ai mis dans le commentaire de la procédure, tu dois activer la référence Microsoft Word Object Library et on part du principe que ton fichier word existe déjà.
merci pour cette réponse et pour le temps que tu y a consacré !
Ce code m'aide beaucoup merci !
Toutefois je ne trouve sur aucun forum la réponse à une de mes questions,
et je n'arrives pas à adapter le programme pour faire en sorte que le tableau soit dirigé à un endroit particulier du document word...
j'ai créé un signet nommé "signet1" dans le document Word de destination ; mais je n'arrive pas à faire en sorte que le tableau soit coller à l'endroit "signet1" !
Merci de vos réponses
Chrix a écrit :Bonsoir,
A copier dans un module standard :
Option Explicit Sub exportPlageVersWord(rngData As Range, sUrlFichierWord As String) 'Déclaration des objets Word 'Nécessite d'activer la référence Microsoft Word xx.x object library '(dans la fenêtre VBE, cliquez sur Outils, Référénces et cocher la référence) Dim wdApp As New Word.Application Dim wdDoc As Word.Document 'Copie de la plage rngData.Copy 'Ouverture du document word Set wdDoc = wdApp.Documents.Open(sUrlFichierWord) wdApp.Visible = True wdDoc.Activate 'Collage wdDoc.ActiveWindow.ActivePane.Selection.PasteAndFormat (wdPasteDefault) 'Vidage de la mémoire des objets Set wdDoc = Nothing Set wdApp = Nothing End SubUtilisation de la procédure, (à coller dans un module type feuille)
Dans mon exemple je l'ai appliqué sur un bouton.
Option Explicit Private Sub CommandButton1_Click() Dim rngPlageAcopier As Range Dim sUrlFichierWord As String 'A paramétrer selon ton utilisation With ThisWorkbook.ActiveSheet Set rngPlageAcopier = .Range(Range("D1").Value) sUrlFichierWord = .Range("D2").Value End With 'Utilisation de la procédure exportPlageVersWord rngPlageAcopier, sUrlFichierWord End SubJe t'ai mis mon exemple en pièce jointe
ps: attention, comme je l'ai mis dans le commentaire de la procédure, tu dois activer la référence Microsoft Word Object Library et on part du principe que ton fichier word existe déjà.
Bonjour,
J'ai essayé d'adapter cette macro afin de pouvoir effectuer cette manip (copier une plage de donnée dans word) mais avec plusieurs onglets. Je souhaiterais qu'en appuyant sur le bouton cela me copie à la suite tous mes onglets, sur une plage définie (la même sur les différents onglets).
J'ai posté une question à ce sujet dans le forum.
Comment faire ?
Merci d'avance
Oph