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 :

Rechercher plusieurs occurences dans document Word


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2015
    Messages : 9
    Par défaut Rechercher plusieurs occurences dans document Word
    Bonjour,
    J'ai un tabeau avec deux colonnes, "N°PAYZEN" et "MONTANT PAYZEN". Je récupère les infos à partir d'un document word. J'aimerai rechercher, dans mon document word, toutes les occurences qui commencent par "PF925037" et les compiler dans ma première colonne. Dans ma deuxième colonne, je compile les montants qui correspondent à ma première recherche.
    J'ai commencé une macro mais je ne récupère qu'une seule occurence. Je n'arrive pas récupérer toutes les occurences et les compiler les unes après les autres.

    Quelqu'un pourrait-il m'aider SVP?

    Merci

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Sub Importation_Donnees_Caisse()
     
        ' -- Déclaration des variables
        Dim wb As Workbook          'classeur Excel dans lequel on importe les données
        Dim ws As Worksheet         'onglet Excel dans lequel on importe les données
        Dim sNomFichier As String   'nom du fichier Word
        Dim WApp As Object, WDoc As Object, WSel As Object
        Dim i As Integer
     
        ' -- Initialisation des variables
        Set wb = ThisWorkbook
        Set ws = wb.Sheets(1)                       'on sauvegarde dans la 1re feuille
        sNomFichier = Application.GetOpenFilename("Fichiers word (*.docx),*.docx")        'pour choisir un fichier word
        If sNomFichier = False Then Exit Sub
     
     
     
        Set WApp = CreateObject("Word.Application") 'pour créer un objet Word
        WApp.Visible = True                        'afficher Word pendant l'exécution
        i = ws.Range("A" & Rows.Count).End(xlUp).Row + 1   '1re ligne où on va écrire les données dans le fichier Excel
     
        Application.ScreenUpdating = False
     
        ' -- Boucle sur les fichiers
     
     
            Set WDoc = WApp.Documents.Open(sNomFichier)   'ouvre le document Word
     
            Application.StatusBar = "Écriture ligne " & i       'message dans Excel pour voir la progression
     
     
            ' Numéro Payzen
     
            WApp.Selection.Homekey unit:=6              'Retourne au début du fichier Word
            WApp.Selection.Find.ClearFormatting         'on "vide la mémoire" de la fonction Recherche
            WApp.Selection.Find.Execute "PF925037", Forward:=True     'On recherche le texte "   "
            Set WSel = WApp.Selection                   'sélection du texte trouvé
            ws.Cells(i, 1) = Trim(WSel)
     
            ' Montant Payzen (par la fonction FIND)
     
            WApp.Selection.Homekey unit:=6              'Retourne au début du fichier Word
            WApp.Selection.Find.ClearFormatting         'on "vide la mémoire" de la fonction Recherche
            WApp.Selection.Find.Execute "PF925037", Forward:=True     'On recherche le texte "   "
            WApp.Selection.MoveRight unit:=3, Count:=2, Extend:=2   'On se déplace de 3 mots
            Set WSel = WApp.Selection                   'sélection du texte trouvé
            ws.Cells(i, 2) = Trim(Split(WSel, "XPF")(1))      'Le montant est la chaîne de caractères séparés par XPF
     
            WDoc.Close False                'fermer le document Word sans enregistrer
     
    SortieNormale:
        Application.ScreenUpdating = True
        WApp.Quit                           'Fermer l'instance de Word
        Application.StatusBar = False       'Remise à zéro de la barre d'état
     
        MsgBox "TERMINE"
     
     
    End Sub

  2. #2
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2015
    Messages : 9
    Par défaut
    Personne pour m'aider?
    SVP

  3. #3
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    Bonjour,

    a vue de nez, je me dirigerais vers une forme du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With Selection.Find
        While .Execute(FindText:="Test", Forward:=True)
          If .Found = True Then
            Selection.Range.Bold = True
          End If
        Wend
      End With

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour !

    Citation Envoyé par Meovai Voir le message
    Personne pour m'aider?
    SVP
    Pas étonnant en posant une problématique Word dans un forum dédié à Excel ‼

    _____________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  5. #5
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2015
    Messages : 9
    Par défaut
    Marc-L, merci pour ton commentaire constructif! Tu ne dois pas être d'une très grande aide vu que tu n'as pas réussi à lire le simple bout de code que j'ai mis. Sinon tu aurais vu qu'il s'agit bien d'une requête vba excel qui utilise un objet Word...

    Pour ceux qui n'ont pas compris, je veux à partir d'EXCEL (!!!) récupérer plusieurs occurences dans un document word!

    Allez salut!

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut





    Et non, je l'ai bien lu et je confirme : aucune requête Excel, juste une problématique objet Word !

  7. #7
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Il me semble qu'il n'ait pas lu la contribution de mayekeul. Peut-être y trouverait-il une indication ? En principe quand on ne sait pas que l'on a trouvé ce que l'on est supposé chercher, on ne trouve pas grand chose.

    Et puis moi, je trouve que son code est pas mal brouillon et qu'un grand seigneur qui exige de l'aide, cela m'indispose.

Discussions similaires

  1. [XL-2000] Problème de recherche à plusieurs critères dans un document
    Par ben190186 dans le forum Excel
    Réponses: 2
    Dernier message: 21/10/2013, 14h34
  2. Rechercher plusieurs occurences dans un fichier
    Par snorky94 dans le forum VBScript
    Réponses: 2
    Dernier message: 21/02/2013, 10h34
  3. Recherche mot dans document Word
    Par dakota77 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/11/2009, 20h35
  4. Recherche dans documents Word et OLE
    Par pinson dans le forum C#
    Réponses: 2
    Dernier message: 20/02/2007, 14h50
  5. Sélection dans document Word et validation
    Par ptilo dans le forum VBA Word
    Réponses: 1
    Dernier message: 15/06/2006, 10h57

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