Bonjour,
Je souhaite faire une macro qui recherche dans ma base de données en fonction des champs selectionnés dans les listbox1 et 2, qui se réfèrent aux colonnes D et E de ma base, et qui affiche les lignes résultats de la colonne B à E dans la listbox3.

voici mon 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
Private Sub CommandButton3_Click()
Dim i As Long, j As Long, activity As Boolean, sector As Boolean, champ As Range, recherchok As Range
Set champ = Sheet3.Range("B1:E1")
ListBox3.ColumnCount = Sheet3.Range("B1:E1").Columns.Count
For j = 2 To Sheet3.UsedRange.Rows.Count
    For i = 0 To ListBox1.ListCount - 1
        If Sheet3.Range("D" & j).Value = ListBox1.List(i) And ListBox1.Selected(i) = True Then activity = True
    Next i
    For i = 0 To ListBox2.ListCount - 1
        If Sheet3.Range("E" & j).Value = ListBox2.List(i) And ListBox2.Selected(i) = True Then sector = True
    Next i
    If activity = True And sector = True Then
    Set recherchok = Sheet3.Cells(j, 2).Resize(1, 4)
    Set champ = Application.Union(champ, recherchok)
    End If
    activity = False
    sector = False
Next j
ListBox3.List() = champ.Value
End Sub
le problème c'est que cela ne m'affiche que les lignes résultat qui se suivent dans ma base de données.

Pouvez-vous m'aider???