Récupération données excel dans word depuis excel
Résolu/Fermé
Svinep
Messages postés
3
Date d'inscription
jeudi 31 mars 2016
Statut
Membre
Dernière intervention
7 avril 2016
-
31 mars 2016 à 11:12
Svinep Messages postés 3 Date d'inscription jeudi 31 mars 2016 Statut Membre Dernière intervention 7 avril 2016 - 7 avril 2016 à 10:59
Svinep Messages postés 3 Date d'inscription jeudi 31 mars 2016 Statut Membre Dernière intervention 7 avril 2016 - 7 avril 2016 à 10:59
A voir également:
- Récupération données excel dans word depuis excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
- Mise en forme conditionnelle excel - Guide
2 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
31 mars 2016 à 11:46
31 mars 2016 à 11:46
Bonjour,
Ton explication est confuse!
Pour piloter Word depuis Excel:
http://www.info-3000.com/vbvba/automation.php
Pour ouvrir un classeur Excel depuis Word:
https://www.excel-downloads.com/threads/ouvrir-excel-depuis-une-macro-word.46701/
voilà
Ton explication est confuse!
Pour piloter Word depuis Excel:
http://www.info-3000.com/vbvba/automation.php
Pour ouvrir un classeur Excel depuis Word:
https://www.excel-downloads.com/threads/ouvrir-excel-depuis-une-macro-word.46701/
voilà
Svinep
Messages postés
3
Date d'inscription
jeudi 31 mars 2016
Statut
Membre
Dernière intervention
7 avril 2016
4 avril 2016 à 10:35
4 avril 2016 à 10:35
Bonjour,
Merci pour la réponse.
Effectivement ce qui n'était pas très clair, et que je vais préciser:
Je souhaite récupérer, depuis Excel, une donnée présente dans un Excel qui se trouve en objet (OLE) dans un Word.
Le problème n'étant pas de récupérer une info sur un Word, mais plutôt de réussir à ouvrir un objet Excel présent dans le document Word.
Je pense que une fois la manip faite, il sera facile de récupérer les info nécessaires.
SI je le découpe en étapes, cela donne:
1) Ouvrir depuis Excel un fichier Word.
2) Ouvrir le fichier excel en objet (OLE) dans le fichier Word.
3) Récupérer les données de ce fichier Excel pour les faire apparaitre dans le premier fichier Excel
J'éspère avoir été plus clair...
Merci pour la réponse.
Effectivement ce qui n'était pas très clair, et que je vais préciser:
Je souhaite récupérer, depuis Excel, une donnée présente dans un Excel qui se trouve en objet (OLE) dans un Word.
Le problème n'étant pas de récupérer une info sur un Word, mais plutôt de réussir à ouvrir un objet Excel présent dans le document Word.
Je pense que une fois la manip faite, il sera facile de récupérer les info nécessaires.
SI je le découpe en étapes, cela donne:
1) Ouvrir depuis Excel un fichier Word.
2) Ouvrir le fichier excel en objet (OLE) dans le fichier Word.
3) Récupérer les données de ce fichier Excel pour les faire apparaitre dans le premier fichier Excel
J'éspère avoir été plus clair...
Svinep
Messages postés
3
Date d'inscription
jeudi 31 mars 2016
Statut
Membre
Dernière intervention
7 avril 2016
7 avril 2016 à 10:59
7 avril 2016 à 10:59
Ca y est! Une solution à été trouvée:
Public Sub TestCopie()
'Je définis deux objets, un qui va stocker la représentation de mon "Application Word" et l'autre de mon "Document Word
Dim WordApp, WordDoc As Object
Dim file, dossier As String
file = ThisWorkbook.Path & "\como\COMO-1.docx"
'On crée un objet "Word.Application", il se lance automatiquement
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
'On ouvre le document word (COMO en l'occurence) et on stocke sa représentation pour pouvoir le manipuler dans notre objet "WordDoc"
Set WordDoc = WordApp.Documents.Open(file)
'InlineShapes est une énumération des objets présents dans word, le (1) correspond au numéro (il faudra le déterminer!) .OLEFormat.Open ouvre le document
'en résumé, on OUVRE le PREMIER OBJET présent dans le DOCUMENT WORD
'pour déterminer le inlineshape à ouvrir, tu pourras faire un for each objetpresent in WordDoc.InlineShapes , si le OLEFormat.Iconlabel = lenomquetuveux alors
'tu sauras que ton i correspondra à ton InlineShape à ouvrir, je te laisse poser ça tranquilou
WordDoc.InlineShapes(1).OLEFormat.Open
'en s'ouvrant, il devient l'activeworkbook (heureusement d'ailleurs sinon ça allait être très très très galère), on peut donc utiliser la propriété activeworkbook pour
'cibler les valeurs
Workbooks("DEMO.xlsm").Sheets(1).Range("C5:D5").Value = ActiveWorkbook.Sheets(1).Range("A2:B2").Value
'à la fin de ta boucle de ligne (car il va falloir faire ça pour chaque ligne de ton como, tu pourras fermer le workbook et le word.
ActiveWorkbook.Close
WordApp.Quit
End Sub
Un grand merci à Julien F. pour avoir trouvé cette solution!
Public Sub TestCopie()
'Je définis deux objets, un qui va stocker la représentation de mon "Application Word" et l'autre de mon "Document Word
Dim WordApp, WordDoc As Object
Dim file, dossier As String
file = ThisWorkbook.Path & "\como\COMO-1.docx"
'On crée un objet "Word.Application", il se lance automatiquement
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
'On ouvre le document word (COMO en l'occurence) et on stocke sa représentation pour pouvoir le manipuler dans notre objet "WordDoc"
Set WordDoc = WordApp.Documents.Open(file)
'InlineShapes est une énumération des objets présents dans word, le (1) correspond au numéro (il faudra le déterminer!) .OLEFormat.Open ouvre le document
'en résumé, on OUVRE le PREMIER OBJET présent dans le DOCUMENT WORD
'pour déterminer le inlineshape à ouvrir, tu pourras faire un for each objetpresent in WordDoc.InlineShapes , si le OLEFormat.Iconlabel = lenomquetuveux alors
'tu sauras que ton i correspondra à ton InlineShape à ouvrir, je te laisse poser ça tranquilou
WordDoc.InlineShapes(1).OLEFormat.Open
'en s'ouvrant, il devient l'activeworkbook (heureusement d'ailleurs sinon ça allait être très très très galère), on peut donc utiliser la propriété activeworkbook pour
'cibler les valeurs
Workbooks("DEMO.xlsm").Sheets(1).Range("C5:D5").Value = ActiveWorkbook.Sheets(1).Range("A2:B2").Value
'à la fin de ta boucle de ligne (car il va falloir faire ça pour chaque ligne de ton como, tu pourras fermer le workbook et le word.
ActiveWorkbook.Close
WordApp.Quit
End Sub
Un grand merci à Julien F. pour avoir trouvé cette solution!