vba : copier Word fichier ouvert vers Excel

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
 

MichelXld

XLDnaute Barbatruc
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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
 

JCA06

XLDnaute Occasionnel
ç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 !
 

Discussions similaires

Statistiques des forums

Discussions
312 214
Messages
2 086 311
Membres
103 175
dernier inscrit
abcc