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
Partager