Récupération données excel dans word depuis excel
Résolu
Svinep
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Svinep Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Svinep Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je débute sur la création de macro en VBA.
Mon problème est le suivant: Je cherche à récupérer des données présentes dans un fichier excel(Données d'entrée-DE) qui se trouve dans un fichier word pour les intégrer dans un autre fichier excel(Tableau suivi-TS) récapitulatif.
J'ai déjà réussi à faire une extraction des fichiers word du dossier source dans mon TS avec un lien hypertexte pour pouvoir les ouvrir depuis le TS.
J'ai bien trouvé des tutos pour ouvrir/récupérer des données présentes dans un Word, mais pour ouvrir dans ce dernier un fichier Excel et en faire une extraction dynamique, non.
Je précise que l'ensembles des fichier ciblés(DE) ont tous une partie de leur noms similaire.
Si quelqu'un à une solution, Je suis preneur!!!
Merci d'avance.
Je débute sur la création de macro en VBA.
Mon problème est le suivant: Je cherche à récupérer des données présentes dans un fichier excel(Données d'entrée-DE) qui se trouve dans un fichier word pour les intégrer dans un autre fichier excel(Tableau suivi-TS) récapitulatif.
J'ai déjà réussi à faire une extraction des fichiers word du dossier source dans mon TS avec un lien hypertexte pour pouvoir les ouvrir depuis le TS.
J'ai bien trouvé des tutos pour ouvrir/récupérer des données présentes dans un Word, mais pour ouvrir dans ce dernier un fichier Excel et en faire une extraction dynamique, non.
Je précise que l'ensembles des fichier ciblés(DE) ont tous une partie de leur noms similaire.
Si quelqu'un à une solution, Je suis preneur!!!
Merci d'avance.
A voir également:
- Récupération données excel dans word depuis excel
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Word 2013 - Télécharger - Traitement de texte
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
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à
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...
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!