userform avec plusieurs possibilité de filtre

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

  • Nouveau fichier de recettes ver 77.zip
    20 KB · Affichages: 73
  • Nouveau fichier de recettes ver 77.zip
    20 KB · Affichages: 71
  • Nouveau fichier de recettes ver 77.zip
    20 KB · Affichages: 70

tinet

XLDnaute Impliqué
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+
 

Modeste

XLDnaute Barbatruc
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 :confused::confused: 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 :eek:)
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

  • Recettes tinet.zip
    22.4 KB · Affichages: 80
  • Recettes tinet.zip
    22.4 KB · Affichages: 78
  • Recettes tinet.zip
    22.4 KB · Affichages: 80

tinet

XLDnaute Impliqué
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+
 

Modeste

XLDnaute Barbatruc
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 :rolleyes:
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 ;)
 

tinet

XLDnaute Impliqué
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+
 

Modeste

XLDnaute Barbatruc
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
 

tinet

XLDnaute Impliqué
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
 

tinet

XLDnaute Impliqué
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+
 

Modeste

XLDnaute Barbatruc
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

  • Recettes tinet.zip
    22 KB · Affichages: 61
  • Recettes tinet.zip
    22 KB · Affichages: 60
  • Recettes tinet.zip
    22 KB · Affichages: 62

tinet

XLDnaute Impliqué
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

  • Recettes tinet.zip
    20 KB · Affichages: 68
  • Recettes tinet.zip
    20 KB · Affichages: 70
  • Recettes tinet.zip
    20 KB · Affichages: 73

tinet

XLDnaute Impliqué
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+
 

Discussions similaires

Réponses
4
Affichages
213
Réponses
29
Affichages
954