relation entre VBA excel et VBA word

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 !

jmcemoa

XLDnaute Nouveau
Bonjour à toutes et à tous

travaillant sur une macro VBA excel, j'ai besoin d'aller dans un fichier word pour récupérer du texte.
Est-il possible 😕 :
soit de continuer la macro excel dans word,
soit d'intégrer une macro word dans la macro excel,
ou encore une autre manière de procéder à laquelle je n'ai pas pensé.

Si cela est faisable, pourriez-vous m'indiquer la marche à suivre ??? 😀

D'avance, merci à vous
Cordialement,
Jean-Marie🙂
 
Re : relation entre VBA excel et VBA word

bonjour jmcemoa,

pour commencer, il faut cocher la référence Microsoft Word x.x Object Library dans le menu Outils, Références...

pour récupérer le texte, c'est possible, mais il faut plus de détails si tu as besoin d'aide.
Code:
Sub WordDansExcel()
    Dim wrdAppli    As New Word.Application
    Dim Doc         As Word.Document
    
    wrdAppli.Visible = True
    Set Doc = wrdAppli.Documents.Open("D:\Philippe\CV Philippe AMICE english.doc")
    
    ' traitement
    
    ' fermer le fichier
    Doc.Close False
    
    ' quitter Word
    wrdAppli.Quit
    
    ' libérer la mémoire
    Set wrdAppli = Nothing: Set Doc = Nothing
End Sub
 
Re : relation entre VBA excel et VBA word

Merci Kobaya,

j'ai fait ce que tu m'as dit mais il reste toujours le même problème.
J'ai coché la référence Microsoft Word x.x Object Library.
j'ai mis le sous-programme que tu m'as concocté (encore merci) mais cela n'ouvre pas le fichier prévu

En fait, je ne sais pas donner l'adresse excel du fichier dans word
j'ai essayé Set Doc = wrdAppli.Documents.Open(ActiveCell), mais cela ne fonctionne pas ; alors je passe par un lien hyper texte qui prend l'adresse dans la cellule voisine

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ActiveCell.Offset(, 1)
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Call WordDansExcel

Sub WordDansExcel()
Dim wrdAppli As New Word.Application
' traitement
Selection.MoveDown Unit:=wdLine, Count:=3
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Copy

et là, le traitement (pourtant fait dans word) ne se fait pas.
Il bloque à la 1ère ligne Selection.MoveDown Unit:=wdLine, Count:=3

Vois-tu d'où pourrait venir le PB.
Pour info, je travaillais pas mal sur les macros d'excel4, mais je suis encore assez novice dans VBA

Merci d'avance de ton aide, .... ou de celle des autres
Cordialement,
Jean-Marie
 
Re : relation entre VBA excel et VBA word

Merci Michel,😀
j'ai essayé ce que tu m'as conseillé mais sans grand succés.
En fait, ce sont mes instructions word qui ne fonctionnent pas

Selection.MoveDown Unit:=wdLine, Count:=3
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Copy

et je ne comprends pas pourquoi ... 🙁

Si quelqu'un(e) a une idée pour résoudre mon problème, je suis preneur avec beaucoup de reconnaissance.

Cordialement,
Jean-Marie
 
Re : relation entre VBA excel et VBA word

re jmcemoi,
bonjour MichelXLD,

travaillant sur une macro VBA excel, j'ai besoin d'aller dans un fichier word pour récupérer du texte.
MichelXLD a raison, c'est une macro Excel.

j'ai ajouté ton code, et chez moi, ça fonctionne : la macro copie la 4e ligne du document Word dans la cellule active d'Excel.
Code:
Private Sub WordDansExcel()
    Dim wrdAppli    As New Word.Application
    Dim Doc         As Word.Document
    
    wrdAppli.Visible = True
    Set Doc = wrdAppli.Documents.Open("D:\Philippe\CV Philippe AMICE english.doc")
    
[COLOR=Green]     ' traitement[/COLOR]
    With wrdAppli
[COLOR=Green]        ' Selection est un objet de l'application Word[/COLOR]
        .Selection.MoveDown Unit:=wdLine, Count:=3
        .Selection.EndKey Unit:=wdLine, Extend:=wdExtend
        .Selection.Copy
    End With
    
[COLOR=Green]    ' coller dans Excel[/COLOR]
    ActiveSheet.Paste
[COLOR=Green]    ' vider le presse-papier[/COLOR]
    Application.CutCopyMode = False
[COLOR=Green]     ' fermer le fichier[/COLOR]
    Doc.Close False
    
[COLOR=Green]     ' quitter Word[/COLOR]
    wrdAppli.Quit
    
[COLOR=Green]     ' libérer la mémoire[/COLOR]
    Set wrdAppli = Nothing: Set Doc = Nothing
End Sub
 
Dernière édition:
Re : relation entre VBA excel et VBA word

Merci Kobaya pour le complément,
Effectivement, cela fonctionne beaucoup mieux, mais avec une adresse en dur.
Reste encore le gros PB du départ, c'est à dire donner dans word l'adresse qui est dans excel.
Michel ou toi avez-vous la réponse ou un XLDnaute de passage pourrait-il m'éclairer ?

En tous les cas, j'ai grandement avancé grace à vous.
Merci encore.
Cordialement,
Jean-Marie🙂 🙂
 
Re : relation entre VBA excel et VBA word

H E L P ! ! ! H E L P ! ! ! H E L P ! ! ! 🙁 🙁 🙁

je suis complétement coincé et je ne sais plus où chercher.

Quelqu'un(e) a-t-il une solution ou une piste SVP ?

Un grand merci d'avance
Jean-Marie😱
 
Re : relation entre VBA excel et VBA word

bonjour Jean-Marie, bonjour Kobaya

je ne comprends pas ton soucis. tu as toi meme donné la réponse dans ton message de 16h09 hier

remplace

HTML:
Set Doc = _
wrdAppli.Documents.Open("D:\Philippe\CV Philippe AMICE english.doc")

par

Code:
Set Doc = wrdAppli.Documents.Open(ActiveCell)


bonne journée
michel
 
Re : relation entre VBA excel et VBA word

Bonjour Michel ... et les autres😀

aprés avoir fait moult essais, je ne sais plus ce que j'ai essayé.
J'ai donc suivi ton conseil et remis la formule ActiveCell, mais cela ne fonctionne pas mieux🙁

j'ai préparé un fichier pour faire des tests si toi ou un autre XLDnaute aussi sympathique vouliez "jeter un oeil".

Le but étant de mettre colonne B d'excel le contenu de la 4ème ligne des fichiers word associés.

Encore merci à tous
Cordialement,
Jean-Marie🙂
 

Pièces jointes

Re : relation entre VBA excel et VBA word

bonjour


tu peux tester cette adaptation

Code:
Sub WordDansExcel()
    Dim wrdAppli    As New Word.Application
    Dim Doc         As Word.Document
    Dim Cell As Range
    
    wrdAppli.Visible = False
    
    For Each Cell In Range("A5:A8")
        Set Doc = wrdAppli.Documents.Open("C:\" & Cell)
        
         ' traitement
        With wrdAppli
            ' Selection est un objet de l'application Word
            .Selection.MoveDown Unit:=wdLine, Count:=3
            .Selection.EndKey Unit:=wdLine, Extend:=wdExtend
            .Selection.Copy
        End With
        
        ' coller dans Excel
        Cell.Offset(0, 1).PasteSpecial xlPasteValues
        
        ' vider le presse-papier
        Application.CutCopyMode = False
         ' fermer le fichier
        Doc.Close False
   Next Cell
   
     ' quitter Word
    wrdAppli.Quit
    
    MsgBox "Opération terminée"
    
     ' libérer la mémoire
    Set wrdAppli = Nothing: Set Doc = Nothing
End Sub


bon apres midi
MichelXld
 
Re : relation entre VBA excel et VBA word

OUF !!! 😀 un grand OUF😀

et surtout un grand merci 😉 à Kobaya, Michel et Pierrejean sans qui je ne serais jamais arrivé (sauf peut-être à m'arracher les cheveux ...)

J'ai fait un "mix" de vos conseils et en voici le résultat.
Il y a surement mieux mais cela a le mérite de fonctionner.

Encore merci à vous et bravo pour ce site qui permet de se sentir un peu moins seul devant son clavier lorsqu'on est coincé.

Cordialement
Jean-Marie🙂
 

Pièces jointes

- 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
56
Affichages
2 K
Réponses
4
Affichages
492
Retour