Recherche 1 à 3 critéres en VBA (Résolu)

  • Initiateur de la discussion Initiateur de la discussion misteryann
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

misteryann

XLDnaute Occasionnel
Bonsoir à tous.

Apprendre, apprendre, chercher, chercher... oui.
Mais là je sèche.
J'ai un Userform avec 4 combobox.
Les 3 premières définissent des critères de recherches qui doivent s'afficher dans la ComboBox 4 au fur et à mesure.
Les critères cherchés doivent être sur une même ligne.
J'espère que la PJ est explicite.

Merci par avance
 

Pièces jointes

Dernière édition:
Re : Recherche 1 à 3 critéres en VBA

Bonsoir Le Forum, mysteryann
Déjà un premier code pour remplir les combobox 1 à 3
avec une boucle

Code:
Private Sub UserForm_Initialize()
   Set mondico = CreateObject("Scripting.Dictionary")
   For Each c In Range(Sheets("Feuil1").[AA2], Sheets("Feuil1").[AA65000].End(xlUp))
     If Not mondico.Exists(c.Value) Then mondico.Add c.Value, c.Value
   Next c
   For x = 1 To 3
        Me("ComboBox" & x).AddItem "*"
            For Each i In mondico.items
                Me("ComboBox" & x).AddItem i
            Next i
            Me("ComboBox" & x).ListIndex = 0
   Next x
   End Sub

Pour la Suite je regarde cela
A+
 
Re : Recherche 1 à 3 critéres en VBA

Bonsoir je fais le programme

VB:
Private Sub CommandButton1_Click()
'  Regle1 sont "10 et 20" soit : TabA = Array("A", "C", "D", "E", "F")
TabRegle1 = Array("A", "C", "D", "E", "F")
'  Regle2 sont "10,20,30" soit : TabA = Array("A", "E", "F")
TabRegle2 = Array("A", "E", "F")

' Nettoyage de la comboBox (Resultat)
ComboBox4.Clear

If ComboBox1.Value = 10 And ComboBox2.Value = 20 And ComboBox3.Value = "" Then
    For i = 0 To UBound(TabRegle1)
        ComboBox4.AddItem TabRegle1(i)
    Next i
ElseIf ComboBox1.Value = 10 And ComboBox2.Value = 20 And ComboBox3.Value = 30 Then
    For i = 0 To UBound(TabRegle2)
        ComboBox4.AddItem TabRegle2(i)
    Next i
End If

End Sub

Private Sub UserForm_Initialize()
   Dim Tab1 As Variant
   Tab1 = Range(Sheets("Feuil1").[AA2], Sheets("Feuil1").[AA65000].End(xlUp))
   For i = LBound(Tab1, 1) To UBound(Tab1, 1)
        ComboBox1.AddItem Tab1(i, 1)
        ComboBox2.AddItem Tab1(i, 1)
        ComboBox3.AddItem Tab1(i, 1)
   Next i
End Sub
 

Pièces jointes

Dernière édition:
Re : Recherche 1 à 3 critéres en VBA

Bonsoir,

Dans le fichier joint, ton Usf, avec un module de classe..

A l'initialisation de l'Usf, on charge les 3 combobox (cbx) avec les données de la plage I2 à L7 (sans doublons)
Et le cbx4 n'est pas sélectionnable

Dès que tu sélectionnes une valeur dans 1 cbx, celle-ci n'est plus proposée pour les autres (j'ai supposé que tu ne pouvais avoir qu'une valeur unique par ligne)

Dès que tu as renseigné au minimum 2 cbx, tu peux choisir dans le cbx4 les valeurs de la colonne C (si on trouve ces 2 critères sur la même ligne...)

Si tu choisis 2 ou 3 cbx, et qu'il n'y a pas de correspondance, le cbx4 n'est pas sélectionnable.

Bonne nuit
 

Pièces jointes

Re : Recherche 1 à 3 critéres en VBA

Un grand MERCI à vous deux!!!
Voilà 2 codes que je garde précieusement.
Décidemment, rien n'arrête les fous furieux du VBA...
C'est la preuve qu'il y a de vrais passionnés qui partage leur savoir.
Merci, Merci. Merci.
 
Re : Recherche 1 à 3 critéres en VBA

Bonjour.
Bhbh, juste une précision: je souhaite également récupérer la valeur de la CB 4 dans une Textbox.
J'ai essayer de comprendre ton code mais c'est trop costaud pour moi.
Quelle ligne dois-je rajouter et surtout Ou?
J'ai essayé plusieurs solutions mais ça marche pas.
Merci par avance.
 
Re : Recherche 1 à 3 critéres en VBA

Bonjour,

Dans le module de classe, en tout début de code, insère cette ligne :

Code:
With Combos(4).CombosGroup
   If .Value <> "" Then UserForm1.TextBox1 = .Value
    .Clear
    .Enabled = False
End With

(Si le textbox s'appelle bien TextBox1)

Nota, le cbx4 s'efface aussitôt...

Bon courage
 
Re : Recherche 1 à 3 critéres en VBA

J'ai résolu le pb en copiant collant la Usf du classeur exemple vers mon projet et ça marche...
Comme je suis un noob je comprends pas tout... Mais bon...
Un grand Merci pour ta disponibilité.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

S
  • Question Question
Microsoft 365 Mise à Jour dates
Réponses
0
Affichages
633
Stephane Mex
S
J
Réponses
2
Affichages
2 K
J
L
Réponses
4
Affichages
1 K
L
L
Réponses
4
Affichages
2 K
Luke91
L
M
Réponses
8
Affichages
1 K
M
Réponses
12
Affichages
3 K
G
Réponses
11
Affichages
1 K
Guardi_Guedj
G
N
Réponses
3
Affichages
903
nantex
N
K
Réponses
14
Affichages
2 K
Kan_Coyotte
K
Y
Réponses
8
Affichages
3 K
Ynwa_57
Y
S
Réponses
4
Affichages
2 K
sexyback
S
M
Réponses
6
Affichages
4 K
Myst3ry
M
Retour