Bonjour à tous,
J'ai l'habitude de manipuler VBA avec Excel, mais je vus avoue qu'avec Word, je suis parfois un peu perdu. J'ai donc besoin de vous pour plusieurs choses, si vous pouviez me donner un coup de main.
Je reçois un document Word avec ce genre de mise en page (fixe) :
Pièce jointe 601237
Je voudrais, dans Excel, récupérer des informations de ce fichier Word. Du coup, dans un premier temps, je m'exerce dans le VBA de Word pour essayer de trouver ce que je veux.
En fait, j'ai plusieurs informations différentes à récupérer : du texte, de la case à cocher, de la valeur dans un espèce de cadre en dessin suivant la case à cocher, et des images.
Dans un premier temps, j'essaye de trouver comment faire pour récupérer le NOM. Je suis partie sur cette macro :
Du coup, après je me déplace de 2 caractères, et j'ai le début de mon nom. Sauf que mon nom peut être composé, il peut avoir x caractères, sachant que le x est variable. Du coup, d'après la mise en page, le nom est compris entre les ":" et la première tabulation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Selection.HomeKey unit:=6 'Retourne au début du fichier Word Selection.Find.ClearFormatting 'on "vide la mémoire" de la fonction Recherche Selection.Find.Execute "NOM :" 'On trouve le texte "No Facture" Selection.MoveRight unit:=1, Count:=2, Extend:=wdMove 'On se déplace de 3 mots MsgBox Selection.Text
Comment je peux faire pour trouver la première tabulation du fichier ? il faut que je passe par le code ASCII du caractère ? mais comment je fais pour avoir sa position par rapport au texte "NOM :" ? en gros comment je fais pour avoir la position d'un caractère quelconque. Parce que pour le nom, là c'est une tabulation, mais pour le prénom par exemple, c'est un saut de ligne après.
Deuxième question : si vous regardez l'imprime écran, j'ai une 2e fois le texte "NOM :" qui apparait => est-ce qu'après ma première recherche, le "curseur de recherche" s'arrête après celle-ci ou recommence du début ? Cad que si je rerecherche derrière "NOM :" il va aller au suivant ou il va retomber sur le premier ?
Troisème question : dans l'image ci-dessus, j'ai des cases à cocher : comment je peux savoir en VBA, quelle case est cochée ? du coup, par rapport à cette case, je dois récupérer la valeur à côté (dans l'espèce de cadre) : est-ce qu'on peut récupérer la valeur à l'intérieur de ces cadres ? Si oui, comment identifier lesdits cadres ?
Enfin, la dernière : dans le cadre bleu, je vais normalement avoir une photo : comment je fais pour la récupérer ? C'est aussi un cadre, mais à l'intérieur c'est pas du texte, mais une image...
Voilà, je crois que j'ai fait le tour.
Je vous remercie d'avance pour votre aide de mon côté, je vais continuer à fouiller voir si je trouve la solution (mais ça fait 2h que je fouille et que je trouve pas )
Partager