bonjour les super internautes, grâce à vous j'avance et je suis heureux d’être un membre de ce super site

je viens de développer une petite application ou j'importe
1/ les données d'un logiciel COMPTABILITÉ développés sous oracle à l'aide MS QUERY
2/ Un suivi sur excel des comptes bancaires se trouve dans un feuil du classeur
je lance le rapprochement à l'aide d'une formule donnée par un gentil membre de ce site :
SI(NB.SI($C$3:$C3;C3)>NB.SI($L$3:$L$162;C3);C3;"")
cette formule est transformée en code à l'aide de l'enregistreur automatique
tous est bon sauf que cette opération prenne environ 3 à 5 minutes et je demande si je peux alléger ce code et gagner encore du temps
merci à tous
code principal
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
Option Explicit
Sub MVT_BNA()
Dim cel As Range, plage As Range, plage1 As Range, plage2 As Range, plage3 As Range, plage4 As Range, plage5 As Range
Dim derlig As Long, derlig1 As Long, derlig2 As Long, derlig3 As Long, derlig4 As Long, derlig5 As Long
    Application.ScreenUpdating = False
    ActiveWorkbook.RefreshAll
    'suppression ancoen données
    With Worksheets("BNA")
      If Worksheets("BNA").AutoFilterMode Then
      Worksheets("BNA").AutoFilterMode = False
      End If
        derlig = .Range("A" & Rows.Count).End(xlUp).Row
        Set plage = .Range("A3:A" & derlig)
        derlig1 = .Range("B" & Rows.Count).End(xlUp).Row
        Set plage1 = .Range("B3:B" & derlig1)
        derlig2 = .Range("C" & Rows.Count).End(xlUp).Row
        Set plage2 = .Range("C3:C" & derlig2)
      If .Range("A3") <> "" Then
        plage.ClearContents
        plage1.ClearContents
        plage2.ClearContents
      End If
    End With
      With Worksheets("BNA")
     derlig4 = .Range("D" & Rows.Count).End(xlUp).Row
     Set plage4 = .Range("D3:D" & derlig4)
     derlig5 = .Range("M" & Rows.Count).End(xlUp).Row
     Set plage5 = .Range("M3:M" & derlig5)
        If 1 = 1 Then
        plage4.ClearContents
        plage5.ClearContents
        End If
    End With
    'insertion nv données
    With Worksheets("Mouvement")
        derlig3 = .Range("A" & Rows.Count).End(xlUp).Row
        Set plage3 = .Range("A11:A" & derlig3)
    End With
    For Each cel In plage3
        If cel = "BNA" And cel(, 2) > Sheets("BNA").Range("A1") And cel(, 9) <> 0 Then
            Worksheets("BNA").Cells(Rows.Count, 1).End(xlUp)(2) = cel(, 2)
            Worksheets("BNA").Cells(Rows.Count, 1).End(xlUp)(1, 2) = cel(, 5)
            Worksheets("BNA").Cells(Rows.Count, 1).End(xlUp)(1, 3) = cel(, 9)
        End If
    Next cel
    'mise en forme date
    Worksheets("BNA").Range("A3:A" & derlig1).Select
    Selection.NumberFormat = "m/d/yyyy"
    ' formule de rapprochement
    Call SLD_BNA
 
    Call formuleBNA
 
    Application.ScreenUpdating = True
    MsgBox "Rapprochement terminé...veuillez patienter encore quelques secondes"
 
End Sub
Code enregistré à l'aide de l'enregistreur
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
Sub formuleBNA()
'
' Macro4 Macro
'
With Worksheets("BNA")
If 1 = 1 Then
    Range("D3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(COUNTIF(R3C3:RC3,RC[-1])>COUNTIF(R3C12:R5000C12,RC[-1]),RC[-1],"""")"
    Range("D3").Select
    Selection.AutoFill Destination:=Range("D3:D5000"), Type:=xlFillDefault
    Range("D3:D5000").Select
    Range("M3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(COUNTIF(R3C12:RC12,RC[-1])>COUNTIF(R3C3:R5000C3,RC[-1]),RC[-1],"""")"
    Range("M3").Select
    Selection.AutoFill Destination:=Range("M3:M5000"), Type:=xlFillDefault
    Range("M3:M5000").Select
    End If
End With
End Sub
' code pour faire le solde de chaque mouvement de la comptabilité : débit - crédit
Sub SLD_BNA()
 
With Worksheets("BNA")
If 1 = 1 Then
   Range("L3").Select
    ActiveCell.FormulaR1C1 = _
        "=IF([@[DAT_PIE_MVT]]<>"""",[@[MNT_DEB_MVT]]-[@[MNT_CRE_MVT]],"""")"
    Range("L3").Select
    Selection.AutoFill Destination:=Range("L3:L5000"), Type:=xlFillDefault
    Range("L3:L5000").Select
    End If
End With
End Sub