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 :

Recherche multiple d’occurrences dans des documents Word depuis un fichier Excel


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur packaging
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur packaging

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Recherche multiple d’occurrences dans des documents Word depuis un fichier Excel
    Bonjour à tous,

    J'ai tout d'abord posté ce message dans la section Excel ici où on m'a fait savoir qu'il s'agissait plutôt d'une question de VBA Word, bien que la macro soit utilisée dans Excel donc je me tourne vers vous ...

    Je travaille sur un fichier dont l'objectif est de synthétiser des infos contenues dans un dossier contenant une très longue liste de fichiers Word (1500). La chaîne de caractères que je recherche est du format [0-9]{3}-[0-9]{3} ou [0-9]{4}-[0-9]{3}. J'aimerais donc pouvoir récupérer toutes les instances de ces 2 types d'éléments, associées à chaque fois au nom du fichier qui la contient.

    Ma macro actuelle marche assez bien, mais ne donne en sortie que la première occurrence de ma chaîne, et recherche uniquement sur [0-9]{3}-[0-9]{3} ou [0-9]{4}-[0-9]{3}, mais pas les deux à la fois.

    J'avais donc imaginé une fonction (voir code ci-dessous) qui cherche la prochaine occurrence différente de la précédent, mais je n'arrive pas à la faire marcher (en commentaire dans la macro). Sachant qu'on peut avoir jusqu'à 12 occurrences, ce n'est pas envisageable de créer 12 fonctions. Peut-être une boucle qui cherche dans chaque document avant de passer au suivant, ou la fonction FindNext que je ne maitrise pas ? Je vous serai très reconnaissant de bien vouloir me donner quelques pistes pour faire marcher ma macro

    La macro complète est du bricolage, adaptée d'un modèle, donc ce n'est probablement pas optimisé, mais ça marche plus ou moins comme je veux !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Formule n+1 (par la fonction FIND)
            WApp.Selection.HomeKey unit:=6              
            WApp.Selection.Find.ClearFormatting         
            With WApp.Selection.Find
            .Text = "[0-9]{4}-[0-9]{3}"
            .MatchWildcards = True
            End With
     
            Set WSel_a = WApp.Selection
     
            WApp.Selection.Find.Execute                 
            If WSel_b = WSel_a Then
                ws.Cells(i, 3) = ""
                Else: ws.Cells(i, 3) = WSel_a
    End If
    En pièce jointe : une archive avec mon fichier Excel et 2 fichiers Word pour l'exemple
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Lorsqu'on lance une recherche, on peut la continuer sur les occurrences suivantes.

    .found renvoie vrai tant que la recherche est fructueuse, il suffit de faire une boucle avec comme paramètre cette propriété.

    http://heureuxoli.developpez.com/off...emplacer/#L3-B

    Par contre, si tu as deux 'strings" à rechercher, il faudra le faire deux fois, donc une boucle en plus sur ce que tu dois chercher.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur packaging
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur packaging

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour Heureux-oli,
    Merci pour ta réponse encourageante, je m'attendais à plus compliqué ! Je vais regarder ça et je te tiens au courant

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/04/2015, 15h18
  2. [XL-2010] Recherche multiple d’occurrences dans des documents Word depuis un fichier Excel
    Par Meynur dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/04/2015, 16h16
  3. Réponses: 33
    Dernier message: 22/08/2011, 14h33
  4. [XL-2003] Effacer des signets dans un document word depuis excel
    Par scoubi77 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/03/2010, 21h20
  5. Recherche de contenu dans des documents (Word, Excel, PDF ..)
    Par Morad ISSOULGHANE dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/02/2010, 12h48

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