Bonjour le forum,

j'ai svp besoin de votre aide encore

sujet : je souhaite filtrer une colonne suivant deux critères ensuite je fait une recherche.
La recherche : je stock dans un tableau toutes les donnes filtrées ensuite je compare chaque ligne par rapport à une valeur précise.
problème : sur la ligne pour alimenter mon tableau j'ai une erreur d'indice et je sais pas comment la résoudre

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
 
Function macro_DV(mavar_DV)
 
Dim DerLigdv As Long
Dim k As Long
Dim tableau() As Variant
Dim wbk1 As Workbook
Dim Plage_rech As Variant
Dim ligne_dv As Variant
Set wbk1 = ThisWorkbook
 
    crit = Replace(UserForm1.TextBox9.Value, " ", "")
    If wbk1.Sheets("BDD").AutoFilterMode = True Then               'Test si filtre est activé
        wbk1.Sheets("BDD").AutoFilterMode = False                      'Si oui désactivation
    End If
    DerLigdv = wbk1.Sheets("BDD").Range("I" & Rows.Count).End(xlUp).Row
    wbk1.Sheets("BDD").Range("A1" & ":L" & DerLigdv).AutoFilter Field:=7, Criteria1:=Array(crit, UserForm1.TextBox9.Value), Operator:=xlFilterValues
    Set Plage_rech = wbk1.Sheets("BDD").Range("A1" & ":L" & DerLigdv).SpecialCells(xlCellTypeVisible)
    ReDim tableau(1 To DerLigdv, 1 To 2)
    For Each ligne_dv In Plage_rech.Rows
        tableau(k, 1) = wbk1.Sheets("BDD").Cells(ligne_dv.Row, 8).Value
        tableau(k, 2) = wbk1.Worksheets("BDD").Cells(ligne_dv.Row, 9).Value
        k = k + 1
    Next ligne_dv
 
    For k = 1 To DerLigdv
        If mavar_DV = tableau(k, 1) Then
            macro_DV = tableau(k, 2)
        End If
    Next
 
    If macro_DV = "" Then
        macro_DV = "Pas de famille"
        Exit Function
    End If
 
 
 
 
End Function

Merci