XL 2010 VBA Macro : importer les 12 caractères suivant toutes les occurrences d'un mot sur une trame word dans excel

vauwn

XLDnaute Nouveau
Bonjour à tous,
Je vous remercie par avance pour votre lecture et votre aide dont j'ai bien besoin !

J'ai crée un document Word pour m'aider à piloter mon activité pro qui m'apporte désormais plus de complications que de bénéfices, maintenant que j'y ait inscrit l'histoire de 1000 personnes.

J'aurais aimé créer une macro VBA qui importe dans un fichier excel les noms de mes patients sur la première colonne, et certaines autres informations afin de ne pas avoir à répéter l'opération 1000 fois manuellement. Je n'ai malheureusement pas standardisé la forme de ce document word, mais j'ai par chance écrit "Mr" / "Mme" devant chaque Nom et ait noté certaines informations de manière systématique devant certaines date que je souhaiterai récupérer : "TC" et "PEC du"

Afin de venir à bout de ma tâche j'ai repris un code et y ait apporté certaines modifications mais reste bloqué sur certains détails depuis plusieurs jours.
Ma première difficulté est que la sélection s'opère sur les 12 caractères suivant la première occurrence de "Mr" au sein de mon document et ainsi le premier nom se répète sur les 400 cellules de ma colonne A. J
La seconde difficulté est qu je ne sait pas comment mettre en place une manière de chercher les termes "Mr" et à défaut "Mme" afin qu'ils soient tous les deux inscrits dans la première colonne.
La troisième difficulté est donc de poursuivre la recherche sur les termes "TC" et "PEC du" afin d'obtenir toutes le dates de TC sur la seconde colonne et toutes les dates PEC sur la troisième colonne. Toutefois je ne suis pas certain que cela soit réalisable au vue d'une certaine hétérogénéité des

Pour finir j'aurais aimé que le nom des personnes inscrits dans la colonne 1 servent de lien hypertexte vers le dit document word de Trame afin de pouvoir piloter le document word depuis ce document excel.



Voici mon code :

Code:
Sub Test()
Dim objdoc As Document

Cible = ("C:\Users\g-bct-poneua14\Desktop\trame1.docx")
Set WordApp = CreateObject("Word.application")
WordApp.Visible = True 'False pour ne pas afficher Word
WordApp.Documents.Open Filename:=Cible
WordApp.Selection.HomeKey Unit:=wdStory, Extend:=wdMove

With WordApp.Selection.Find
    .ClearFormatting
    .Text
    .Forward = True
    Debug.Print .Found
    
End With

WordApp.Selection.Find.Execute
WordApp.Selection.MoveRight Unit:=1, Count:=1 ' Déplacement à G
WordApp.Selection.MoveRight Unit:=1, Count:=12, Extend:=1  'Nombre de caracteres à récupérer

Range("A1:A400") = WordApp.Selection

WordApp.Quit
Set WordApp = Nothing
End Sub
Sub Tot()
Cible = ("C:\Users\g-bct-poneua14\Desktop\trame1.docx")
MsgBox Cible

End Sub


Je travaille sur Excel 2010 et ne suis pas certain des informations dont vous auriez besoin pour me venir en aide.

Merci par avance, je serai disponible pour répondre rapidement;

Vauwn
 

job75

XLDnaute Barbatruc
Bonjour vauwn, sousou,

2 questions.

1) pourquoi ne pas créer des signets numérotés (bookmarks) dans le document Word pour pouvoir les récupérer facilement depuis Excel ?

Par exemple Nom1 Nom2 Nom3... TC1 TC2 TC3.... PEC1 PEC2 PEC3...

2) Pourquoi recopier 400 fois le même mot dans le fichier Excel ?

A+
 
Haut Bas