Recherche avec Différents Modes et plusieurs critères.
laumasyf
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
Kusco Messages postés 466 Date d'inscription Statut Membre Dernière intervention -
Kusco Messages postés 466 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis novice en programmation VBA.
Cela fait plusieurs jours que je réfléchis à un problème que je fini par porter à votre niveau pour solliciter votre aide.
Je voudrais que vous m'aidiez à finir d'écrire les codes ci-dessous:
Celui plus haut me sert à afficher le résultat de la recherche faite par celui plus bas.
Pour la Recherche, j'ai trois choix de sélection (OptionBouton3, OptionBouton4, OptionBouton7).
Je voudrais pour chaque opération de ma recherche, ajouter 3 critères qui seront sélectionnés dans des zones modifiables que j'ai nommées (PeriodeComboBoxe, AnneeComboBox et TypeComboBox). Sachant qu'à défaut de la sélection par dans les Zones modifiables, chacune de leur fenêtre serait vide.
Cordialement
Année => 2014, 2013, 2012, ........
Période => Janvier, Février, Mars, .......
Type => Type de Produit
Je suis novice en programmation VBA.
Cela fait plusieurs jours que je réfléchis à un problème que je fini par porter à votre niveau pour solliciter votre aide.
Je voudrais que vous m'aidiez à finir d'écrire les codes ci-dessous:
Celui plus haut me sert à afficher le résultat de la recherche faite par celui plus bas.
Private Sub RecordsComboBox_Change() Me.ResultListBox.Clear Dim Ctrl As Control For Each Ctrl In Me.Controls If TypeName(Ctrl) = "TextBox" Then Ctrl.Text = "" Next Ctrl For Each cel In pl If CStr(cel.Value) = CStr(Me.RecordsComboBox.Value) Then nl = cel.Row With ResultListBox .AddItem Sheets("Enregistrement").Cells(cel.Row, 3) .List(.ListCount - 1, 1) = Sheets("Enregistrement").Cells(nl, 5) .List(.ListCount - 1, 2) = Sheets("Enregistrement").Cells(nl, 8) .List(.ListCount - 1, 3) = nl End With End If Next cel If Me.ResultListBox.ListCount = 1 Then Me.ResultListBox.ListIndex = 0 End Sub Private Sub obG2() Dim col As Integer Dim dico As Object Dim tbl As Variant Dim i As Variant Dim j As Variant Dim temp As Variant UserForm1.RecordsComboBox.Clear If OptionButton3.Value Then col = 3 Else If OptionButton4.Value Then col = 5 Else: col = 4 End If With Sheets("Enregistrement") Set pl = .Range(.Cells(3, col), .Cells(Application.Rows.Count, col).End(xlUp)) 'définit la plage pl End With Set dico = CreateObject("scripting.dictionary") For Each cel In pl dico(cel.Value) = "" Next cel tbl = dico.keys For i = 0 To UBound(tbl, 1) For j = 0 To UBound(tbl, 1) If tbl(i) < tbl(j) Then temp = tbl(i) tbl(i) = tbl(j) tbl(j) = temp End If Next j Next i UserForm1.RecordsComboBox.List = tbl End Sub
Pour la Recherche, j'ai trois choix de sélection (OptionBouton3, OptionBouton4, OptionBouton7).
Je voudrais pour chaque opération de ma recherche, ajouter 3 critères qui seront sélectionnés dans des zones modifiables que j'ai nommées (PeriodeComboBoxe, AnneeComboBox et TypeComboBox). Sachant qu'à défaut de la sélection par dans les Zones modifiables, chacune de leur fenêtre serait vide.
Cordialement
Année => 2014, 2013, 2012, ........
Période => Janvier, Février, Mars, .......
Type => Type de Produit
A voir également:
- Recherche avec Différents Modes et plusieurs critères.
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Différence entre tcp et udp - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Modes d'emploi - Guide
- Recherche photo - Guide
5 réponses
Avec quelque chose comme ça est ce que ça t'aiderait pour ta recherche et tes trois boutons ?
Ou bien ce n'est pas ça que tu voulais dire ?
Private Sub OptionBouton3_Click() 'Quand tu cliques sur le bouton 3 cela devient visible
PeriodeComboBoxe.Visible = True
AnneeComboBox.Visible = True
TypeComboBox.Visible = True
End Sub
Private Sub UserForm_Initialize() 'A l'ouverture du UserForm, les Comboxbox ne sont pas visibles
PeriodeComboBoxe.Visible = False
AnneeComboBox.Visible = False
TypeComboBox.Visible = False
End Sub
Ou bien ce n'est pas ça que tu voulais dire ?
Bonjour Kusco,
Mon problème ne se situe pas au niveau de la visibilité des Zones modifiables (PeriodeComboBox, AnneeComboBox et TypeComboBox).
J'ai créé un Cadre (Frame) qui regroupe tous ces boutons qui n'apparaissent que lorsqu'on voudrait faire une recherche.
Pour la recherche, nous avons différents critères, tels expliqués ci-dessous:
Lot_1
1 - OptionButton3 est le choix de tri par commande
2 - OptionButton4 est celui par Demande d'Approvisionnement
3 - OptionButton7 celui par fournisseur.
Lot_2
A - AnneeComboBox
B - PeriodeComboBox
C - typeComboBox
Quelque soit le choix du Lot_1, La recherche est faite selon les critères A, B et C, à la fois, de manière à avoir comme résultat:
Choix 1 (OptionButton3): La liste des Fournisseurs ayant souscrit pour cette commande au cours de l'année (A), de la Période (B) et selon les type de produit.
Choix 2 (OptionButton4): La liste des Commandes passées au fournisseur sélectionné, au cours de l'année (A), de la Période (B) et selon le type de produit.
Choix 3 (OptionButton7): La liste des Fournisseurs ayant souscrit pour cette demande d'Approvisionnement, au cours de l'année (A), de la Période (B) et selon le type de produit.
Avec le code dans mon message, je suis arrivé à affiché mes résultats selon chacun des critères du lot_1.
Je n'arrive pas encore à trouver la solution pour croiser les critères du Lot_1 avec le Lot_2.
Merci pour ton intéressement à mon problème.
J'espère que nous trouverons la solution.
Cordialement
Mon problème ne se situe pas au niveau de la visibilité des Zones modifiables (PeriodeComboBox, AnneeComboBox et TypeComboBox).
J'ai créé un Cadre (Frame) qui regroupe tous ces boutons qui n'apparaissent que lorsqu'on voudrait faire une recherche.
Pour la recherche, nous avons différents critères, tels expliqués ci-dessous:
Lot_1
1 - OptionButton3 est le choix de tri par commande
2 - OptionButton4 est celui par Demande d'Approvisionnement
3 - OptionButton7 celui par fournisseur.
Lot_2
A - AnneeComboBox
B - PeriodeComboBox
C - typeComboBox
Quelque soit le choix du Lot_1, La recherche est faite selon les critères A, B et C, à la fois, de manière à avoir comme résultat:
Choix 1 (OptionButton3): La liste des Fournisseurs ayant souscrit pour cette commande au cours de l'année (A), de la Période (B) et selon les type de produit.
Choix 2 (OptionButton4): La liste des Commandes passées au fournisseur sélectionné, au cours de l'année (A), de la Période (B) et selon le type de produit.
Choix 3 (OptionButton7): La liste des Fournisseurs ayant souscrit pour cette demande d'Approvisionnement, au cours de l'année (A), de la Période (B) et selon le type de produit.
Avec le code dans mon message, je suis arrivé à affiché mes résultats selon chacun des critères du lot_1.
Je n'arrive pas encore à trouver la solution pour croiser les critères du Lot_1 avec le Lot_2.
Merci pour ton intéressement à mon problème.
J'espère que nous trouverons la solution.
Cordialement
Ah d'accord je vois mieux mais j'ai encore un peu de mal à concrétiser le système.
Pourrais-tu m'envoyer ton fichier ? (par message privé s'il est confidentiel)
Ce site permet facilement l'envoie https://www.cjoint.com/
Je verrais au maximum ce que je peux faire. Je crois avoir eu le même problème mais cela dépends de la structure de ton fichier.
Pourrais-tu m'envoyer ton fichier ? (par message privé s'il est confidentiel)
Ce site permet facilement l'envoie https://www.cjoint.com/
Je verrais au maximum ce que je peux faire. Je crois avoir eu le même problème mais cela dépends de la structure de ton fichier.
Bonjour Kusco,
Lien: https://www.cjoint.com/?0Aro7uE6oau
Ci-joint le fichier, espèrant que cela puis-ce mieux nous éclairer
A bientôt
Cdlt
Lien: https://www.cjoint.com/?0Aro7uE6oau
Ci-joint le fichier, espèrant que cela puis-ce mieux nous éclairer
A bientôt
Cdlt
Merci je viens de regarder ton fichier (désolé j'étais déconnecté d'internet ces derniers jours).
Si j'ai bien compris, c'est au niveau de "Private Sub ResultListBox_Click()" que tu ajoute dans ta ResultListBox tes différents éléments.
Pourquoi ne va filtrer les éléments de manière à n'ajouter que les champs de recherche un peu de cette manière :
Et il faut aussi que tu inclues quelque chose au cas où tu laisses les champs vide.
J'espère avoir pu t'aider, sinon n'hésite pas à revenir vers moi !
Si j'ai bien compris, c'est au niveau de "Private Sub ResultListBox_Click()" que tu ajoute dans ta ResultListBox tes différents éléments.
Pourquoi ne va filtrer les éléments de manière à n'ajouter que les champs de recherche un peu de cette manière :
'Tu ajoute ceci dans ta boucle de manière que cela vérifie chacun de ces trois éléments à chaque fois pour chaque ligne If PeriodeComboBox = Cells(nl, 2) And AnneeComboBox = Cells(nl, 1) And TypeComboBox = Cells (nl, 9) Then 'La tu places ton ajout dans la liste Else 'Rien End if
Et il faut aussi que tu inclues quelque chose au cas où tu laisses les champs vide.
J'espère avoir pu t'aider, sinon n'hésite pas à revenir vers moi !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Kusco,
J'ai mis du temps à vous répondre parce que je tenais à faire mon maximum pour m'en sortir, mais je ne suis pas arrivé à trouver où insérer les codes que vous m'avez recommandé.
Excusez-moi d'être aussi embêtant.
Je fais mes débuts en VBA.
Merci pour votre réponse.
Cdlt
J'ai mis du temps à vous répondre parce que je tenais à faire mon maximum pour m'en sortir, mais je ne suis pas arrivé à trouver où insérer les codes que vous m'avez recommandé.
Excusez-moi d'être aussi embêtant.
Je fais mes débuts en VBA.
Merci pour votre réponse.
Cdlt