Bonjour à tous et toutes, ainsi qu'au Forum,

Voici le contexte, dans un formulaire nommé "Requete", j'ai une liste déroulante ("Liste_Critere1" ayant comme valeurs les variable de ma base de données Excel. Lorsque l'utilisateur choisi une variable, une procédure ("Recherche_Critere1" récupère les valeurs de la colonne, et alimente 2 autres listes déroulantes ("debut" : valeurs triées dans ordre croissant et "fin" dans l'ordre décroissant). Voila pour le contexte.


La recherche s'effectue lorsque l'utilisateur modifie la liste "Liste_Critere1". Si l'utilisateur se trompe dans la variable, ce qui modifie de nouveau la liste déroulante, la recherche se lance encore une fois et je me retrouve avec dans la liste "debut" et "fin" avec les données de la première variable puis la seconde. j'ai donc voulu effacé les valeurs des liste déroulantes comme ci dessous.




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
 
 
Private Sub Liste_Critere1_Change()
 
Dim Liste_Index As Long
Dim Nb_Liste as Long
 
Nb_Liste = Requete.debut.ListCount
 
If Nb_Liste > 0 Then
 
    With Requete.debut
        .SetFocus
        For Liste_Index = .ListCount - 1 To 0 Step -1
            .RemoveItem (Liste_Index)
        Next Liste_Index
        .SelText = ""
    End With
 
    With Requete.fin
        .SetFocus
        For Liste_Index = .ListCount - 1 To 0 Step -1
            .RemoveItem (Liste_Index)
        Next Liste_Index
        .SelText = ""
    End With
 
End If
 
 
Call Recherche_Critere1   ' Procédure qui récupère les valeurs de la colonne
 
End Sub

Mon problème :

Le problème c'est que mon programme provoque des erreur lorsque je fais les tests pour savoir s'il ya des doublons. Erreur 381 qui correspond aux item du tableau...

Je ne comprend pas comment faire, a par supprimer la combobox et la repositionner au même endroit ....

J'espère avoir était assez clair. J'ai pas mal cherché mais la je sature

Dans l'attente de vous lire.

A bientôt.

Benoit