Bonjour à tous,

Le contexte:
Un classeur avec 3 feuilles.
  • Listing du personnel
  • Extraits de compte bancaire
  • Une feuille "Résultats" qui doit recevoir toutes les lignes concernées par mon traitement

Les extraits de compte bancaires contiennent tous les mouvements de la banque.
L'objectif de sélectionner dans le listing un membre du personnel et de sortir des extraits de banque tous les acomptes qu'il a reçu.

Tout se passe bien pour les 2 premières ouvrières et à la 3ème, le module se plante à la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Do While Cells.Find(What:=Nom, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
avec le message :
Erreur d'exécution 91
Variable Objet ou variable de bloc With non définie

voici 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
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Sub InjectionDansRésultats()
'
' InjectionDansRésultats Macro
'
    Dim DerLg As Currency
    Dim LigCrtRés As Currency
    Dim LigCrtING As Currency
    Dim Montant As Currency
    Dim Comm1 As Currency
    Dim i As Currency
    Dim LigCrtAme As Currency
 
    Dim Nom As String
    Dim Mvt As String
    Dim Comm As String
    Dim Desc As String
    Dim Mois As String
 
    Dim DateMvt As Date
 
    Nom = "00000"
    LigCrtAme = 1
 
    Do While Nom <> ""
        Worksheets("Gap - Aide-ménagères").Activate
        DerLg = 0 ' Si la ligne de la cellule active de ING - Extraits 2023 est inférieure ou égale de à DerLg on sort de la boucle de recherche "Do while find nom"
        LigCrtAme = LigCrtAme + 1
        Nom = Range(Cells(LigCrtAme, 5), Cells(LigCrtAme, 5)).Value ' Enregistrement du nom de l'ouvrière pour laquelle on va rechercher des mvts dans le fichier bancaire
 
        Worksheets("ING - Extraits 2023").Activate ' On passe sur la feuille des extraits de compte
        Range("I1").Select ' on remonte au début.
 
        Do While Cells.Find(What:=Nom, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
            LigCrtING = ActiveCell.Row ' Une fois qu'on est sur la ligne on en enregistre le numéro.
            DateMvt = Range(Cells(LigCrtING, 5), Cells(LigCrtING, 5)).Value ' On mémorise la date du mvt.
            Mvt = Range(Cells(LigCrtING, 4), Cells(LigCrtING, 4)).Value ' On mémorise le n° du mvt.
            Montant = Range(Cells(LigCrtING, 7), Cells(LigCrtING, 7)).Value ' On mémorise le montant du mvt.
            Comm = Range(Cells(LigCrtING, 9), Cells(LigCrtING, 9)).Value ' On mémorise la communication du mvt.
 
            If ActiveCell.Row <= DerLg Then Exit Do ' Si la ligne de la cellule active de ING - Extraits 2023 est inférieure ou égale de à DerLg on sort de la boucle de recherche "Do while find nom"
            DerLg = ActiveCell.Row ' numéro de ligne de la cellule active
 
            Comm1 = 0
 
            If InStr(1, Comm, "ACPT-") > 0 Then Comm1 = 21
            If InStr(1, Comm, "Acompte") > 0 Then Comm1 = 22
 
            For i = 1 To 12
                Mois = Right("0" & i, 2)
                If InStr(1, Comm, "A" & Mois & ".23") > 0 Then Comm1 = i
                If Comm1 = i Then Exit For
            Next
 
            For i = 1 To 12
                Mois = Right("0" & i, 2)
                If InStr(1, Comm, "2023/" & Mois & "-1 1 0") > 0 Then Comm1 = i + 100
                If Comm1 = i + 100 Then Exit For
            Next
 
            Select Case Comm1
                Case 21
                    Desc = "Acompte du 15"
 
                Case 22
                    Desc = "Acompte"
 
                Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
                    Desc = "Acompte ponctuel"
 
                Case 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112
                    Desc = "Pas concerné"
 
                Case Else
                    Desc = "Communication inhabituelle"
 
            End Select
 
            If Desc <> "Pas concerné" Then
                Worksheets("Résultats").Activate
                LigCrtRés = Cells(Rows.Count, 1).End(xlUp).Row + 1
                Range(Cells(LigCrtRés, 1), Cells(LigCrtRés, 1)).Value = "ING857"
                Range(Cells(LigCrtRés, 2), Cells(LigCrtRés, 2)).Value = DateMvt
                Range(Cells(LigCrtRés, 3), Cells(LigCrtRés, 3)).Value = Mvt
                Range(Cells(LigCrtRés, 4), Cells(LigCrtRés, 4)).Value = Nom
                Range(Cells(LigCrtRés, 5), Cells(LigCrtRés, 5)).Value = Montant
                Range(Cells(LigCrtRés, 10), Cells(LigCrtRés, 10)).Value = Comm
                Range(Cells(LigCrtRés, 12), Cells(LigCrtRés, 12)).Value = Desc
            End If
 
            Worksheets("ING - Extraits 2023").Activate
            Selection.Font.Bold = True
 
        Loop ' Do While Cells.Find(What:=Nom, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False).Activate
    Loop ' Do While nom <> ""
 
 
End Sub 'InjectionDansRésultats()
Si quelqu'un de plus compétent que moi à une idée, il en est d'avance remercié.

A bientôt.

Henri