Copie d'une plage Excel dans Word depuis Word
Bonsoir à tous,
Je me lance un peu sur les macros Word après m'être amusé sur Excel. J'ai un besoin relativement simple mais sur lequel je bloque.
Dans un fichier Word, quand je clique sur un bouton, j'aimerai qu'une plage Excel soit copiée et coller sur Word. J'ai ce code pour l'instant, qui par du bouton valider d'un UserForm. Il charge bien le fichier Excel demandé, sélectionne la feuille souhaitée, sélectionne ensuite la plage demandée mais ensuite la formule ne fonctionne pas et je ne trouve pas comment repasser sur Word pour Coller ma sélection. J'ai trouvé plein de tuto pour copier depuis un excel mais quasi rien pour l'inverse, le soucis c'est que c'est sur mon fichier word que je suis obligé de bosser, l'Excel et juste une plage de données ou j'irai récupérer pleins d'info en fonction des paramètres de ma macro Word. Donc si quelqu'un a une idée ça serait top.
Sub Bouton_Valider_Click()
Unload Me
'Déclaration des variables
Dim ExcelApp As Excel.Application
Dim ExcelDoc As Excel.Workbook
Dim U1_Chemin As String
Dim NombreLignes As Integer
U1_Chemin = "C:\Users\Heelflip\Desktop"
'Définition des objets
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
Set ExcelDoc = ExcelApp.Workbooks.Open(U1_Chemin & "\" & "Table.xlsx") 'Ouvre le document Excel
'Recherche de la table
ExcelDoc.Sheets(Feuill2).Select
NombreLignes = SheetsFeuill2).Range("A" & Rows.Count).End(xlUp).Row
MsgBox NombreLignes 'Test NombreLignes
ActiveSheet.Range("A1:M" & NombreLignes).Select
Selection.Copy
Selection.Paste
End Sub
Bonjour Heelflip
Toujours pas habitué à manipuler les objets
Il faudrait faire un truc du style
Sub Bouton_Valider_Click()
'Déclaration des variables
Dim ExcelApp As Excel.Application
Dim ExcelDoc As Excel.Workbook
Dim U1_Chemin As String
Dim NombreLignes As Integer
Unload Me
U1_Chemin = "C:\Users\Heelflip\Desktop"
'Définition des objets
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
Set ExcelDoc = ExcelApp.Workbooks.Open(U1_Chemin & "\" & "Table.xlsx") 'Ouvre le document Excel
'Recherche de la table
ExcelDoc.Sheets(Feuill2).Select
NombreLignes = Sheets(Feuill2).Range("A" & Rows.Count).End(xlUp).Row
ActiveSheet.Range("A1:M" & NombreLignes).Copy
' Avec ce document
ThisDocument.Content.Paste
End Sub
A+
Salut Bruno,
Ça fonctionne, en effet les objets c'est encore quelque chose que j'ai du mal à maîtriser
Par contre j'ai un soucis, il colle par dessus mon bouton qui du coup disparait
J'ai créé un signet plus qu'a trouver comment coller dessus car avec ce code cela ne fonctionne pas.
ActiveSheet.Range("A1:A" & NombreLignes, "D1:D" & NombreLignes).Copy
ThisDocument.GoTo what:=wdGoToBookmark, Name:=("Tableau")
ThisDocument.Content.Paste