Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

userform avec plusieurs possibilité de filtre

  • Initiateur de la discussion Initiateur de la discussion tinet
  • 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 !

tinet

XLDnaute Impliqué
Bonjour le forum,

Je cherche une solution pour excel 2003.
J'ai besoin d'aide sur un Userform en complement d'information.

j'ai créé un Userform, qui me permet de rechercher un produit par le mot première lettre ou contient ou fournisseur, mais séparer

je souhaiterais apporter des améliorations sur mon Userform.

j'aurais besoin de faire le tri avec les diférents choix.
faire une recherche avec première lettreou contient ,filtre avec fournisseur et même
produit frais mais en cumule
j'ai fait plusieurs tests mais je n'arrive pas à trouver la solution.

Voici mon code

PHP:
Private Sub ListBox2_Click() 'Lors de la sélection d'un fournisseur, afficher les produits
   ListBox1.Clear
    For Each f In [Liste].Offset(0, 8)
        If f.Value = ListBox2.Text Then ListBox1.AddItem f.Offset(0, -8)
    Next f
End Sub



Private Sub ListBox4_Click()
ListBox1.Clear
    For Each f In [Liste].Offset(0, 1)
        If f.Value = ListBox4.Text Then ListBox1.AddItem f.Offset(0, -1)
    Next f

End Sub



Private Sub RefEdit1_BeforeDragOver(Cancel As Boolean, ByVal Data As MSForms.DataObject, ByVal x As stdole.OLE_XPOS_CONTAINER, ByVal y As stdole.OLE_YPOS_CONTAINER, ByVal DragState As MSForms.fmDragState, Effect As MSForms.fmDropEffect, ByVal Shift As Integer)

End Sub

Private Sub UserForm_Initialize()
    Me.ListBox1.List = [Liste].Value
    '*** Lister les fournisseurs sans doublons
   Set listef = CreateObject("scripting.dictionary")
    For Each c In [Liste].Offset(0, 8)
        If Not listef.exists(c.Value) Then listef(c.Value) = c.Value
    Next c
     
    ListBox2.List = listef.keys
    Set listef = CreateObject("scripting.dictionary")
    For Each c In [Liste].Offset(0, 1)
        If Not listef.exists(c.Value) Then listef(c.Value) = c.Value
    Next c
     
    ListBox4.List = listef.keys
    '***
End Sub
Private Sub TextBox1_Change()
   Me.ListBox1.Clear
   For Each c In [Liste]
     If UCase(c) Like UCase(Me.TextBox1) & "*" Then Me.ListBox1.AddItem c
  Next c
End Sub
Private Sub TextBox2_Change()
   Me.ListBox1.Clear
   For Each c In [Liste]
     If UCase(c) Like "*" & UCase(Me.TextBox2) & "*" Then Me.ListBox1.AddItem c
  Next c
End Sub
Private Sub ListBox1_Click()
  ActiveCell = Me.ListBox1
  Unload Me
End Sub


et mon fichier

a+
 

Pièces jointes

Re : userform avec plusieurs possibilité de filtre

Bonjour,

Avec d'y ajouter des tris et plusieurs filtres, est-ce-que ta UserForm de base fonctionne correctement pour lire et écrire tes données ...?

A +
🙂
 
Re : userform avec plusieurs possibilité de filtre

bonjour Tinet,James
pour textbox1
If Left(UCase(c), Len(TextBox1)) = UCase(Me.TextBox1) Then Me.ListBox1.AddItem c
le reste fonctionne bien ou alors pas compris la demande
 
Re : userform avec plusieurs possibilité de filtre

Bonsoir James, Bebere le forum,

j'ai remplacé ta formule mais pas de changement.

Ma demande est de sélectionner par exemple un fournisseur.
Le fournisseur me donne la liste des ses produits.
Puis sur le même fournisseur je fais une recherche par premier lettre ou contient.

Je vroudrais pourvoir cumuler avec en plus le filtre produits frais.

mais ma demande est complexe je pense.

A+
 
Re : userform avec plusieurs possibilité de filtre

Bonjour tinet, James, Bebere,

Je suis reparti du premier fichier de la discussion initiale. Comme l'affichage des propriétés du projet étaient protégé par MdP 😕😕 j'ai recopié les feuilles et le UserForm dans un nouveau classeur (Ben oui ... il pleut, j'ai fini un bouquin et le sujet m'intéressait un peu 😱)
Bref, pas certain que tinet repassera, que le projet n'ait pas évolué, mais peu importe (au pire quelques adaptations seront nécessaires): un avis éclairé sur le code (surtout le cumul des critères) m'intéresserait ... au cas où je ne serais pas le seul à m'ennuyer 😉
 

Pièces jointes

Re : userform avec plusieurs possibilité de filtre

Bonsoir Modeste, James, berbere et le forum

Tout d'abord un grand merci à Modeste.
Je suis désolé que tu aies eu du mauvais temps, mais super content que tu as bossé sur mon problème.
je me suis dépêché de refaire mon fichier avec les fonctions que tu as apporter.

Aller sans abuser de toi, la cerise sur le gâteau serait d'avoir la ligne de prix qui suive le produit recherché.

Vous êtes vraiment super sur ce forum.

A+
 
Re : userform avec plusieurs possibilité de filtre

Bonjour tinet, le forum,

La vraie cerise sur le gâteau serait que ... tu trouves comment adapter le code, en fonction de tes besoin 🙄
Ce qui est certain c'est que ce sera dans la procédure "recherche" qu'il faudra ajouter quelque chose. Si c'est le prix qui t'intéresse, j'imagine que le contrôle concerné sera le seul ListBox non encore utilisé ... Enfin, si la variable c permet de parcourir la plage nommée "LISTE", il faut donc aller chercher le prix 2 colonnes plus à droite (voir le Offset utilisé dans le code)
Si tu coinces, reviens avec des questions 😉
 
Re : userform avec plusieurs possibilité de filtre

Bonjour Modeste le forum,

je n'ai malheureusement pas tes compétences.
et je suis complètement nul à comprendre ce langage.
je peux reproduire des choses, mais pas les écrire.

alors la à te poser des questions.

A+
 
Re : userform avec plusieurs possibilité de filtre

re-bonjour,

je peux reproduire des choses, mais pas les écrire
Mais alors, si tu veux un jour apporter des modifications, tu dépendras toujours de quelqu'un!? Et puis ici, tu vas voir: en cherchant un peu, tu aurais pu trouver!

Remplace la procédure "recherche" par celle-ci ... Mais compare-les d'abord, pour voir ce qui est différent!
VB:
Sub recherche()
    Me.ListBox1.Clear
    Me.ListBox3.Clear
    For Each c In [LISTE]
        If UCase(c) Like UCase(Me.TextBox1) & "*" And UCase(c) Like "*" & UCase(Me.TextBox2) & "*" _
                And c.Offset(0, 8) Like IIf(ListBox2.ListIndex = -1, "*", ListBox2.Text) _
                And c.Offset(0, 1) Like frais Then
            Me.ListBox1.AddItem c
            Me.ListBox3.AddItem c.Offset(0, 3)
        End If
    Next c
End Sub
 
Re : userform avec plusieurs possibilité de filtre

Re bonjour,


Merci Modeste.

Quand je fais appel au forum, je sauvegarde les fichiers au fur et à mesure de leur évolutions.
ce qui me permet en tatillonnant de trouver des solutions
mais je n'ai malheureusement pas les notions sur ce langage.
ce qui m'oblige malheureusement à m'adresser à ceux qui ont la connaissance.

je suis ravi de l'aide que tu m'as apportée.

cordialement
A + sur le forum
 
Re : userform avec plusieurs possibilité de filtre

Re bonjour,

Question
j'ai ajouté un bouton de commande sur mon userofrm pour la validation du produit et plus en ListBox1_Click() .
car en sélectionnant le produit, je voulais voir le prix se repositionner en face du produit.
ce qui n'est pas le cas malheureusement.
donc si je veux cliquer sur le produit et que le prix se repositionne en face.
comment réécrire.

a+
 
Re : userform avec plusieurs possibilité de filtre

Bonsoir,

en sélectionnant le produit, je voulais voir le prix se repositionner en face du produit.
Avec ma proposition de tout à l'heure, il me semble que c'était bien le cas: pour chaque produit qui s'affichait dans le ListBox1, le prix s'affichait en ListBox3 (qui, dans ton fichier de départ, figurait juste à côté de ListBox1)
 

Pièces jointes

Re : userform avec plusieurs possibilité de filtre

Bonjour Modeste le forum,


Regarde j'ai rajouter des produits pour faire une simulation.
J'ai ajouter un bouton sur le userform pour valider le produit.
Ce qui me permet de choisir le produit pour voir si le prix change.

a+
 

Pièces jointes

Re : userform avec plusieurs possibilité de filtre

Re,

Question si tu selectionne un produit pourrait il avoir en face un ajustement du prix

Exemple

Menu deroulant fournisseur, selection (restaurant)
Puis dans produit selection levure 11

Le prix ne s'ajuste pas sur la même ligne...... possible ?

A+
 
- 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

Réponses
10
Affichages
289
Réponses
3
Affichages
671
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
148
Réponses
5
Affichages
187
Réponses
3
Affichages
197
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…