Bonjour,

Je suis sur un gros projet en vba. Pour celui ci j'utilise les feuilles comme base de donnée c'est à dire que l'utilisateur ne verra que les form et jamais les feuilles du classeurs.

Pour ceci j'ai besoin de gérer des listbox mais je vous avoue avoir beaucoup de mal a réaliser ce que je veux faire. Au préalable et avant de poster cette nouvelle discutions j'ai fouiller partout sur le net pour trouver des réponses y compris sur le tuto de développez.net. Grace à ces tuto j'ai pu comprendre un peu certains trucs mais je bloque des que ça devient un peu plus technique.

En gros j'ai un tableau dans la feuille 1 range("A1:F10000") celui ci comporte donc 6 colonnes.
Dans un userform j'ai une liste box avec à coté plusieurs checkbox qui serviront de filtre automatique pour la colonne "B"

Donc pour le moment de ce que j'ai pu comprendre voila ce que j'ai pu faire

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
Private Sub UserForm_Initialize()
 
ListBox1.ColumnHeads = True
 
ListBox1.List() = Sheets("cotes").Range("A1:F20").Value
 
 
Private Sub CheckBox1_Click()
Call summarize
End Sub
Private Sub CheckBox2_Click()
Call summarize
End Sub
 
Sub summarize()
 
Dim cell As Range
 
If CheckBox1.Value = True And CheckBox2.Value = False Then
Sheets("cotes").Range("$A$1:$F$10000").AutoFilter Field:=2, Criteria1:=Sheets("base de donnée temporaire").Range("O2").Value
End If
Next
 
 
If CheckBox1.Value = False And CheckBox2.Value = False Then
Sheets("cotes").Range("$A$1:$F$10000").AutoFilter Field:=2
End If
 
If CheckBox2.Value = True And CheckBox1.Value = False Then
Sheets("cotes").Range("$A$1:$F$10000").AutoFilter Field:=2, Criteria1:=Sheets("base de donnée temporaire").Range("O3").Value
End If
 
If CheckBox2.Value = True And CheckBox1.Value = True Then
Sheets("cotes").Range("$A$1:$F$10000").AutoFilter Field:=2, Criteria1:=Sheets("base de donnée temporaire").Range("O2").Value, _
Operator:=xlOr, Criteria2:=Sheets("base de donnée temporaire").Range("O3").Value
End If
 
End Sub
Voila jusque la rien d’extraordinaire je récupère les en tètes dans ma listbox et j'utilise la méthode add item pour récupérer les données de ma feuille dans la listbox à l'initialisation de mon userform
Ensuite je joue avec les filtres et l’enregistreur de macro pour pondre un truc qui marche.

Donc mon problème (au delà de l'aspect esthétique du code et de la futur prise de tète lorsque je devrais prendre en compte 10 checkbox) se situe dans l'affichage de ma listbox.
En effet j'aimerais que lorsque je click sur la checkbox1 par exemple les données filtrer dans ma feuille 1 s'affiche aussi dans ma listbox. Je n'y arrive pas. Je ne suis pourtant pas à mon premier projet en VBA mais j'avoue avoir toujours réussi à éviter l'utilisation des listbox car je ne suis vraiment vraiment pas à l'aise avec. Il est temps pour moi de franchir une nouvelle étape de mon apprentissage et j'ai toujours beaucoup appris en postant sur ce forum et à l'aide de vos conseils.

En vous remerciant d'avance pour quelques conseils.

Cordialement