vba : copier Word fichier ouvert vers Excel

  • Initiateur de la discussion Initiateur de la discussion JCA06
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

JCA06

XLDnaute Occasionnel
Bonsoir le Forum,

Grâce à votre aide, j'avance dans mon projet qui doit me permettre d'alimenter une base de données à partir de sources de formats différents.
Mon nouveau problème est que certaines données que je reçois sont au format Word. J'ai trouvé des bouts de codes à ce sujet (merci aux Michel en passant 😉 ), mais je bloque à un endroit car contrairement aux exemples que j'ai trouvé, mon fichier Word sera ouvert, les noms de fichiers n'étant pas 'réguliers'.

Voici les lignes que j'ai récupérées :

Dim Wrd As Object

Set Wrd = CreateObject('word.Application')
Wrd.documents.Open ('C:\\1.rtf') ' je ne peux pas utiliser ceci !
Wrd.Selection.WholeStory
Wrd.Selection.Copy

A la place de la ligne avec le nom de fichier, j'ai bien essayé ceci :
Wrd.documents(1).Activate
ou
Wrd.activedocument.Select

Mais cela ne fonctionne pas...

Merci de me dire si vous savez...

A plus
 
bonjour JCA06 , rebonjour Michel

je ne suis pas sur d'avoir bien compris : dans ton message tu indiques que ton fichier .rtf est deja ouvert alors que

Wrd.documents.Open ('C:1.rtf')

sert justement à ouvrir le document



si ton document .rtf est deja ouvert tu peux tester


Code:
Sub copierDonneesDocumentWordOuvert()
Dim Appli As Word.Application
Dim WordDoc As Word.Document

'testé avec Excel97 et Excel2002
'nécéssite d'activer la reference Microsoft word xx.x 0bject Library

On Error Resume Next
Set Appli = GetObject(, 'Word.Application')
Set WordDoc = Appli.Documents('C:\\Documents and Settings\\michel\\dossier\\general\\excel\\test.rtf')

If WordDoc Is Nothing Then
MsgBox 'Le document est fermé'
Else
WordDoc.Content.Copy
End If

End Sub


bonne soiree
MichelXld
 
Bonjour Michel,Jean Charles le Forum

Je ne sais pas du tout si ça va passer en VBA, car c'est du VBS, mais le CreateObject génére une nouvelle session Word, hors to Document ce trouve dans une Session déja existante...

Essaie avec 'GetObject' ...

En VBs ça donne ceci :

Set xl = GetObject(, 'Excel.Application')

pour ne pas créer une nouvelle session Excel...

Je dois filer pour l'instant.

Bonne Soirée
@+Thierry

EDITION !!!

Bonjour Michel BugsBunny sorry t'avais pas Vu !!! Mais donc 'GetObject'

Message édité par: _Thierry, à: 09/05/2005 18:58
 
ça marche !! :woohoo: :woohoo:

ça passe bien avec le GetObject !

Voici donc le code modifié qui fonctionne :

Set Wrd = GetObject(, 'word.Application')
Wrd.activedocument.Select
Wrd.Selection.WholeStory
Wrd.Selection.Copy


Après ça, y'a plus qu'a !

Merci Thierry, Michel & Michel, et le Forum !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
644
Retour