bonjour le forum et bonne journée

je voudrais faire une extraction sur une base de données se trouvant dans la feuille nommée "Polices" cette extraction repose sur 3 critères N°de Client et Date de début puis Date Fin puis transférer le résultat sur une autre feuille nommée "INTERFACE" j'avais un code qui est sur la même logique seulement le résultat est transférer dans un listview j'ai voulu l'adapter
pour qu'il transfère une dans feuille de calcul au lieu d'un listview mais en vain je galère depuis ce matin.

merci a vous et bonne journée mes amis.

voici le code en question :
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
Private Sub CommandButton1_Click()
'On Error Resume Next
Dim wsBD As Worksheet
    Dim derLig As Long
    Dim Lig As Long
    Dim plage As Range
    Dim CritRente As String
    Dim CritDateDeb As String
    Dim CritDateFin As String
    Dim LigList As Long
    Dim Cumul As Currency
    Dim nc As Integer, s As String
 
    s = Trim(TextBox3): nc = Len(s)
    If nc = 0 Then Exit Sub
    Set wsBD = Worksheets("Polices")
    ' Dernière ligne dans la feuille BD
    derLig = wsBD.Range("A" & Cells.Rows.Count).End(xlUp).Row
    If derLig < 2 Then Exit Sub
 
    ' Définition de la plage en colonne A
    Set plage = wsBD.Range("A2:A" & derLig)
 
    ' Définition des critères
        ' N° De client
    CritRente = IIf(TextBox3.Value = "", "*", TextBox3.Value)
 
        ' Date Début
    CritDateDeb = TextBox1.Value
    If TextBox1.Value = "" Or Not IsDate(TextBox1.Value) Then
        CritDateDeb = Format(Application.WorksheetFunction.Min(plage), "dd/mm/yyyy")
    End If
        ' Date Fin
    CritDateFin = TextBox2.Value
    If TextBox2.Value = "" Or Not IsDate(TextBox2.Value) Then
        CritDateFin = Format(Application.WorksheetFunction.Max(plage), "dd/mm/yyyy")
    End If
    CritDateFin = DateAdd("d", 1, CritDateFin)
    'LigList = 1
    ' Vider la listview
    'ListView1.ListItems.Clear
 
    ' Boucle sur toutes les lignes
    For Lig = 2 To derLig
        ' Rechercher par rapport aux critères
        If CDate(wsBD.Range("B" & Lig).Value) >= CDate(CritDateDeb) And _
            CDate(wsBD.Range("B" & Lig).Value) < CDate(CritDateFin) And _
            CStr(wsBD.Range("A" & Lig).Value) Like CritRente Then
            ' Remplir la première colonne de la feuille INTERFACE
            With Sheets("Interface")
             LigList = .Range("A65000").End(xlUp).Row + 1
            .Range("A10" & LigList) = wsBD.Range("A" & Lig).Value
            .Range("B10" & LigList) = wsBD.Range("E" & Lig).Value
            .Range("C10" & LigList) = wsBD.Range("F" & Lig).Value
            .Range("D10" & LigList) = wsBD.Range("G" & Lig).Value
            .Range("E10" & LigList) = wsBD.Range("H" & Lig).Value
            End With
             LigList = LigList + 1
        End If
    Next Lig
 
End Sub
juste pour votre information la base de données contiens 412264 lignes