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

Macros et VBA Excel Discussion :

Recherche de texte dans fichier word inclus


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Recherche de texte dans fichier word inclus
    Bonjour,

    Je travaille acutellement avec une feuille excell dans laquelle plusieurs documents word ont été inclus (avec l'outil : insertion -> objet -> créer à partir du fichier). J'aimerai récupérer des information dans chacun des doc inclus mais ma macro ne fonctionne pas (je cherche à repérer le mot "local" dans le texte et récupérer le numéro qui suit).

    Pour le moment j'arrive à ouvrir successivement les documents inclus en revanche je n'arrive pas à rechercher du texte dans le document ouvert.

    Mon début de code :
    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
    16
    17
    18
    19
    20
    21
    22
     
    Sub recuplocal ()
    Dim j, n, k As Integer
    dim mot, local As String
     
    mot = "LOCAL"
    n = 50
    k = 3
     
    For j = 1 To n
    obj.OLEFormat.Activate
    ...
    'Selection.Start = obj.Content.Start
    'Selection.End = obj.Content.Start
    'With Selection.Find
    '.Text = mot
    '.Forward = True
    ...
    cells(k,13) = j
    cells(k,14) =  local
    Next j
    End sub
    Si quelqu'un pouvait me donner une piste ça me serait très utile . Merci d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonsoir,

    Une piste est d'explorer les paragraphes à la recherche de la chaîne "local"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set doc = ActiveSheet.OLEObjects("<nom de l'objet word inséré>")
    Dim p As Paragraph
    For Each p In doc.Object.Paragraphs
        Dim pos As Integer
        With p.Range
        pos = InStr(1, .Text, "local")
            If pos > 0 Then
                MsgBox Trim(Mid(.Text, pos + Len("local"))) ' la chaîne qui suit "local"
            End If
        End With
    Next p
     
    Set doc = Nothing
    Une méthode plus sûr serait depuis Word, d'insérer un objet de formulaire de type champs de texte,
    et de le nommer pour retrouver facilement la valeur qu'il contient.

    P.S : Pour disposer des objects Paragraphs, il faut ajouter sous VBA la référence Microsoft Word x.0 Object Library

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonsoir,

    Merci pour cette réponse rapide, néanmoins je n'arrive pas à faire marcher la macro
    Dans la première ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set doc = ActiveSheet.OLEObjects("<nom de l'objet word inséré>")
    Je n'ai pas le nom du document word, je n'ai accès au document word que par son numéro et si je mets ActiveSheet.OLEObjects(Shape(j)) ça ne fonctionne pas.
    En fait le problème c'est que j'ai récupéré une feuille excel avec toute une série de doc word inclus, mais je n'ai pas accès aux fichiers word d'origine je ne peux donc pas les traiter avec une macro ...

    Bonne soirée

  4. #4
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Re.

    essaye ActiveSheet.OLEObjects(Shape(j).Name).

    Sinon pour trouver le nom de l'élément, il existe plusieurs méthodes :
    - utiliser le débuggeur pour explorer avec l'espion ActiveSheet.OLEObjects.
    - enregistrer une macro pendant laquelle on sélectionne les documents
    ...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Alors en mettant "Shapes(j).Name" comme nom d'objet la ligne fonctionne en ravanche la ligne suivante plante (for each p in doc.Object.Paragraphs). Tant pis, merci pour les conseils

  6. #6
    Membre émérite
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 186
    Points : 2 502
    Points
    2 502
    Par défaut
    Bonjour,

    en revanche la ligne suivante plante (for each p in doc.Object.Paragraphs)
    Est-ce que la référence a bien été ajouté au projet comme indiqué au post #2
    P.S : Pour disposer des objects Paragraphs, il faut ajouter sous VBA la référence Microsoft Word x.0 Object Library
    Si oui quel est le message d'erreur ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    J'ai bien ajouté la référence Microsoft Word comme indiqué, mon code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Set doc = ActiveSheet.OLEObjects(Shapes(j).Name)
    Dim p As Paragraph
    For Each p In doc.Object.Paragraphs
    Dim pos As Integer
    With p.Range
    pos = InStr(1, .Text, "local")
    If pos > 0 Then
    MsgBox Trim(Mid(.Text, pos + Len("local"))) ' la chaîne qui suit "local"
    End If
    End With
    Next p
     
    Set doc = Nothing
    et en exécutant la macro j'ai le message d'erreur suivant :

    Erreur d'exécution '1004': Erreur définie par l'application ou par l'objet

Discussions similaires

  1. [Word] Comment rechercher un texte dans zone de texte ?
    Par vedge2000 dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 28/11/2007, 12h11
  2. [RegEx] regex et recherche de texte dans un fichier
    Par minusette dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2007, 14h25
  3. [win32] Recherche texte dans fichier
    Par raphael_kindt dans le forum Windows
    Réponses: 1
    Dernier message: 26/07/2006, 13h51
  4. [WinXP] rechercher du texte dans les fichiers
    Par arcane dans le forum Windows XP
    Réponses: 3
    Dernier message: 05/05/2006, 13h10
  5. [Configuration] recherche de texte dans un fichier
    Par carlos20 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 17/10/2005, 18h25

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