IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Récupérer des informations (texte ou image) dans un fichier Word


Sujet :

VBA Word

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut Récupérer des informations (texte ou image) dans un fichier Word
    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 :

    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
    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.
    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 )
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Bonjour,


    Bon j'ai trouvé le bout de code pour rechercher un texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Selection.EndOf wdWord, wdMove   'permet de positionner le curseur à la fin du dernier mot de la sélection
    Selection.Find.ClearFormatting   'suppression du cache de la recherche précédente
    Selection.Find.Execute "PRÉNOM :"    'On trouve le texte "PRÉNOM :"
    Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdMove  'On se déplace de 2 caractères (j'ai un espace après les ":", et après, le texte commence)
    'MsgBox Selection.Text
    deb = Selection.Start                   'position du texte trouvé
    'MsgBox deb
    Selection.Find.Execute Chr(13)           'on cherche la fin de paragraphe
    fin = Selection.Start                   ' on récupère sa position
    'MsgBox fin
    Set myrange = Selection.Range
    myrange.SetRange Start:=deb, End:=fin
    MsgBox myrange.Text
    Evidemment des fois, j'ai des tabulations (quand par ex le nom et prénom qui est sur la même ligne, du coup, au lieu de chercher CHR(13) je cherche CHR(9)

    Du coup, j'ai répondu à mes 2 premières questions
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/04/2016, 18h44
  2. Réponses: 2
    Dernier message: 04/02/2014, 17h13
  3. Réponses: 2
    Dernier message: 12/06/2012, 18h19
  4. Réponses: 11
    Dernier message: 02/06/2008, 22h07
  5. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo