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 :

Vérifier la présence d'un texte dans un fichier word


Sujet :

VBA Word

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut Vérifier la présence d'un texte dans un fichier word
    Bonjour,
    Je cherche à faire ouvrir un fichier word sous Excel puis vérifier si un texte contenu dans une cellule est présent dans le fichier word.

    Ouvrir et fermer le fichier Word ne me pause pas de problème mais je n'arrive pas à trouver un code qui me permette de vérifier la présence d'un texte.

    Le code que j'utilise:


    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Sub ouvrirWord()
     
     
     
    FichWrd = Range("C2").Value
     
    Dim WordApp As Word.Application
     
    Set WordApp = CreateObject("Word.Application")
     
    Dim objWord As Word.Document
    Set objWord = GetObject(FichWrd, "Word.Document")
     
    Set objWord = WordApp.Documents.Open(FichWrd, ReadOnly:=True)
     
    ' Rend Word visible important car la fusion ne se fait pas si pas visible
    objWord.Application.Visible = True
    NomFichier = objWord.Name
    'Remplacement = "Mot De Remplacement"
     
    motRecherché = Range("A2").Value
     
     
    objWord.Content.Find.Execute FindText:="motRecherché" ', ReplaceWith:=Remplacement, Replace:=wdReplaceAll
     
     
     
    Exit Sub
     
     
     WordApp.Quit
     
     
    Set WordApp = Nothing
     
     
    End Sub

    Je pensais passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWord.Content.Find.Execute FindText:
    Mais je ne trouve pas comment tester.

    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    je sais pas si ça va t'aider mais ...une tentative
    avec CTRL + touche H et l'enregistreur automatique peut être ça amène à une début de piste
    BONNE CONTINUATION
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Je ne pense pas que l'enregistreur de macro enregistre ce que je demande au code de faire sous Word????

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    je n'arrive pas à trouver un code qui me permette de vérifier la présence d'un texte.
    Le Find de Word est très différent de celui d'Excel.
    Contrairement au Find d'Excel qui est une méthode, celui de Word est un Objet, propriété du contenu du document.
    Il ne suffit pas de lui transmettre des paramètres comme dans Excel, il faut renseigner les propriété de l'Objet Find avant de lui appliquer sa méthode Execute.
    Lire l'aide VBA Word sur ce sujet : https://docs.microsoft.com/fr-fr/off.../api/word.find

    Citation Envoyé par Kestion100 Voir le message
    Je ne pense pas que l'enregistreur de macro enregistre ce que je demande au code de faire sous Word????
    Pour info, Word aussi a un enregistreur de macro.
    Autre info : les questions concernant les objets Word sont à poser de préférence dans la rubrique Word du forum.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    OK, comme le code est sous Excel, je pensais....
    Je ne sais pas comment déplacer ce sujet.

    Peut-être existe-t-il une autre façon de faire que Find sous Word?


    Merci

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    OK, comme le code est sous Excel, je pensais....
    Ce n'est pas l'application qui supporte le code qui représente la difficulté mais les objets manipulés.

    Peut-être existe-t-il une autre façon de faire que Find sous Word?
    Pour rechercher un élément dans un texte Word ? Je ne vois pas plus simple que Find.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Avec l'enregistreur sous Word, j'obtiens:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Selection.Find.Execute
        With Selection.Find
            .Text = "fbgbh"
            .Replacement.Text = "teyyhtr"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
    Avec

    n'importe quoi, j'espérais obtenir un retour d'erreur et pouvoir travailler dessus mais aucun retour.

    ????

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Bonjour,

    Vous cherchez à vérifier la présence d'une chaine ou bien à remplacer cette chaine ?

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    Je cherche à en vérifier la présence.

    J'ai trouvé une autre possibilité, compter le nombre d’occurrence du mot que je cherche, à 0, l n'est pas dans le texte.

    Le 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
    Sub Tst()
    Dim Cpt As Long
        Cpt = 0
        Selection.HomeKey Unit:=wdStory
        With Selection.Find
            .Text = "gfdfdhdhb"
           .Forward = True
           .Wrap = wdFindStop
     
        End With
     
        Do While Selection.Find.Execute
           Cpt = Cpt + 1
        Loop
     
        Debug.Print Cpt
    End Sub
    fonctionne parfaitement.

    Comment puis-je l'intégrer dans Excel?????

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kestion100 Voir le message
    Bonjour,

    Testez cette fonction
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Option Explicit
     
    Sub TesterPresenceChaine()
     
        MsgBox PresenceChaine("C:\XXXXXXX\Doc1.docx", "teyyhtr") ' A adapter
     
    End Sub
     
    Function PresenceChaine(ByVal CheminComplet As String, ByVal TexteATrouver As String) As Boolean
     
    Dim wApp As Object
    Dim DocAModifier As Object
    Dim MaSelection As Object
     
        Application.ScreenUpdating = False
        PresenceChaine = False
     
        Set wApp = CreateObject("Word.Application")
        With wApp
     
             Set DocAModifier = .Documents.Open(Filename:=CheminComplet)
             With DocAModifier
                  Set MaSelection = wApp.Selection
                  With MaSelection.Find
                       .ClearFormatting
                       .Text = TexteATrouver
                       .Execute Forward:=True
                  End With
                  If MaSelection.Find.found = True Then PresenceChaine = True
                  .Close
            End With
            .Quit
        End With
     
        Set MaSelection = Nothing
        Set DocAModifier = Nothing
        Set wApp = Nothing
     
        Application.ScreenUpdating = True
     
     
    End Function

  11. #11
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 020
    Points : 169
    Points
    169
    Par défaut
    PARFAIT, MERCI!!!!!!!!!!!!!!!!!!!!!!!!

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2019
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup je teste ceci dès demain. Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vérifier la présence d'un mot dans un fichier texte
    Par Sophie_Géo dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 13/03/2015, 14h44
  2. [XL-2007] Rechercher et afficher un text dans un fichier Word avec macro Excel
    Par ypelissier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/03/2012, 16h51
  3. ecrire du texte dans un fichier word
    Par sonia5 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/02/2010, 01h09
  4. Lire texte dans un fichier word
    Par ramykawkab dans le forum VB.NET
    Réponses: 0
    Dernier message: 04/06/2009, 10h59
  5. Tester la présence d'une image dans un fichier WORD
    Par porikito dans le forum Débuter
    Réponses: 1
    Dernier message: 05/12/2007, 16h12

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