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
Partager