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