Microsoft 365 Filtre listview comboBox en cascades avec tableau structuré

Piment

XLDnaute Occasionnel
Bonjour à tous,
Une fois encore je me retourne vers vous afin de m'aider.
J'ai un problème avec le filtre de ma listView.
Les ComboBox 1 et 2 fonctionnent à priori sans problème, par contre la comboBox 3 ne filtre pas par rapport à la comboBox 2: donc forcément le tri de la comboBox 4 est faussé.
Si quelqu'un a la bonté de jeter un coup d'œil sur le fichier joint et trouver l'erreur, je lui en serais reconnaissant.
Merci à vous.
 

Pièces jointes

  • Test Magasin.xlsm
    77.4 KB · Affichages: 6

fanch55

XLDnaute Barbatruc
Bonjour,
D'après un premier coup d'oeil au code, il semblerait que les filtrages par les combobox soient totalement indépendants. Est-ce voulu ou doit-on les combiner ? y-a-t-il une contre indication à trier les données dans les combobox et la listview ?

[ vous êtes sûr qu'il y a un U dans Oeillet ? 🤔 ;)]
 
Dernière édition:

Piment

XLDnaute Occasionnel
Bonjour Fanch55,
Avant tout, merci d'apporter votre contribution.
pour répondre à votre question, non les filtrage ne doivent pas être indépendant; Le filtre de le comboBox1 filtre la ListView (la Listview remonte que la fleur choisie), Le comboBox 2 permet de filtrer la couleur disponible de la fleur choisie, le comboBox3 permet de choisir PB ou MB ou GB (petit bouton, Moyen bouton, gros bouton), le comboBox4 permet de choisir le fournisseur et entraine l'affichage du prix dans le TexteBox.
Les combobox doivent être en cascades, les tris également.
Je reste à disposition pour des infos complémentaires si besoin.
Merci encore.
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je vous ai déjà joint récemment des classeurs muni d'objets ComboBoxLiées qui se chargent automatiquement de tout, y compris de communiquer à l'UserForm qui les utilise, via évènement Bingo, BingoUn ou Résultat, les liste de numéros de lignes correspondant aux choix effectués dans les ComboBox dont on leur confie la charge.
 

Piment

XLDnaute Occasionnel
Fanch55, Dranreb, bonjour à vous.
Fanch55: c'est bien ça. Je regarde votre fichier de plus près et je reviens vers vous. Merci de votre aide.
Dranreb: effectivement j'ai bien reçu votre fichier hier soir. Alors pour être clair avec vous, n'ayant plus de retour de toute la journée hier (j'en suis le seul responsable puisque j'avais zappé qu'il me fallait vous envoyer un nouveau fichier), j'ai lancé une nouvelle discussion sur le forum afin de trouver de l'aide.
D'où ce fil auquel a répondu aimablement Fanch55.
Merci à vous.
Je vous souhaite une très bonne journée.
Pour info: il y a 3 heures de décalage entre la Métropole et nous: chez moi il est 9h00.
 

Piment

XLDnaute Occasionnel
Bonjour à tous,
Me voilà de retour!
J'ai travaillé tous le weekend!
Fanch55, j'ai repris tes codes et je les ai adapté.
Je mets ci-joint le fichier modifier.
Dans ce fichier, je rencontre quelques soucis:
1°) J'aurais aimé que lors de l'ouverture du formulaire, la ListView soit vide. Là, elle se charge des données de mon dernier tableau (Tableau Feuillage). Je n'ai pas trouvé comment faire. Je n'ai pas touché aux données du module. Si tu pouvais mettre des explications sur les lignes de codes, j'essaierais de comprendre.

Petite précision: c'est en cliquant sur la frame que la Listview se charge des données. Puis on choisi dans les comboBox. Ensuite on click sur la ligne d'Items affichés. Les textBox de la Frame: "Elaboration du Bon de Commande et Archivage" sont chargés. on rentre la Qté, et on enregistre. Les données sont envoyées dans un tableau sur la feuille "Detail Commande" et dans la feuille "Archive Commande" qui ne reçoit que le global de la commande. Le Bon de commande généré est "stocké" dans un classeur dédié, et un pdf est généré et stocké.
2°) Mon dernier filtre (FilterF.Me) ne marche pas et je n'ai pas trouvé pourquoi!!!
3°) Comment mettre la colonne Prix/Botte de la ListView (5ème colonne) en €.
Si tu pouvais y jeter un oeil.
Merci à toi.
Dranreb, je mets le fichier en pièce jointe, si ça te tente....
Merci à toi.
 

Pièces jointes

  • Test Magasin.xlsm
    127.1 KB · Affichages: 6

ChTi160

XLDnaute Barbatruc
Bonjour Claude , Le Fil
De ce que j'ai compris du Format Monétaire(""currency"")
j'ai modifié cette Ligne dans chaque "If Get_Fields(Fields, Select_String) Then "en Ajoutant la Colonne 5 au Formatage. soit :
IIf(C = UBound(Fields, 1) Or 5
VB:
For C = 1 To UBound(Fields, 1)
  Lst.ListSubItems.Add Text:=IIf(C = UBound(Fields, 1) Or 5, Format(Fields(C, R), "currency"), Fields(C, R))
Next
Bonne Journée
Jean marie
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Je pourrais ajouter à mon UserForm un boutons pour "Ajouter au panier" une quantité, et un autre bouton pour archiver. La ListView servirait alors à montrer le panier. Mais ça n'a pas l'air de vous intéresser, vous revenez toujours à 4 tableaux au lieu d'une seule base articles.
 

fanch55

XLDnaute Barbatruc
1°) J'aurais aimé que lors de l'ouverture du formulaire, la ListView soit vide. Là, elle se charge des données de mon dernier tableau (Tableau Feuillage). Je n'ai pas trouvé comment faire. Je n'ai pas touché aux données du module. Si tu pouvais mettre des explications sur les lignes de codes, j'essaierais de comprendre.
J'ai "normalisé" le chargement de chaque Combobox dans l'Initialize, problème résolu
2°) Mon dernier filtre (FilterF.Me) ne marche pas et je n'ai pas trouvé pourquoi!!!
Le filtre fonctionne.... ?
3°) Comment mettre la colonne Prix/Botte de la ListView (5ème colonne) en €.
J'ai fait un chargement de la listview dans un module commun à tous les filtres, les prix/botte et Pu sont pris en compte .

Ajout d'une fonction SqLike dans Ado_Module, pour ne pas faire planter les requêtes quand il y a des apostrophes dans les noms ( comme dans "Bouquets d'afrique" ), j'ai modifié les combobox9( à 12)_change de ce fait .
 

Pièces jointes

  • Test Magasin F55-2.xlsm
    129.2 KB · Affichages: 4

Piment

XLDnaute Occasionnel
Bonjour à tous,
Jean-Marie, heureux que tu rejoignes le fil. J'ai testé, mais la modification que tu proposes me met les colonnes 4/5 et 6 en format monétaire. or la colonne 5 doit rester en numérique et sans décimale. Fanch55 vient de m'envoyer un fichier où ça a été rectifié. Merci à toi.
Dranreb: je nuis pas du tout réfractaire à ce que vous proposez. Mais j'ai du mal avec vos codes. Si vous voulez continuer à me faire des propositions, je suis preneur. Je pourrais lui laisser le choix. Mais vous avez conscience que je ne vous serais d'aucune aide, à part vous fournir les besoins. Vous fabriquez des Ferrari, alors que moi j'en suis encore à essayer de concevoir une cariole. Merci à vous pour ce que vous faîte pour moi.
Fanch55: avant tout merci pour ton aide.
J'ai testé le nouveau fichier, et j'ai un plantage sur:
VB:
Private Sub Txt_Qte_Change()
Txt_Montant = CDbl(Txt_Qte) * CCur(Txt_PrixUnit_Botte)
End Sub
ça doit être un truc idiot, mais je ne vois pas.
Le plantage se passe au moment après avoir clické sur le bouton "Enregistrer".
Le filtre "FilterF.Me" ne fonctionnait pas parce qu'il manquait un "s" à "feuillage dans la sub Frame5_Click().
Bien pensé pour la fonction SqLike.
Je continue à faire évoluer le Formulaire. Je viens de terminer le codage pour que lorsqu'elle choisit une fleur, la photo de la fleur apparait dans un cadre image. Gros travail de saisie dans le tableau en perspective, vu le nombre de fleurs.
Tu peux regarder cette histoire d'incompatibilité de type dans la sub "txt_Qte_Change" s'il te plaît.
Je vais regarder tes codes de plus prêt, pour tenter de les comprendre.
Gros merci à toi.
 

Piment

XLDnaute Occasionnel
Fanch55, TooFatBoy, Dranreb, le Forum, Bonjour à vous
Fanch55 j'ai repris tes codes dans mon fichier, et cela fonctionne comme je le souhaitais. Je t'en remercie.
Je continue à avancer dans mon projet et je rencontre une nouvelle difficulté: J'ai mis en place un nouveau formulaire ( Alimenter_Catalogue) qui me permet d'ajouter de nouvelles fleurs dans les différents tableaux.
Comme tu pourras le voir, au niveau de la comboBox "Fournisseur", que j'ai placé dans une Frame, j'ai mis un bouton de commande qui me permet d'ouvrir le formulaire "Fournisseurs", afin d'ajouter un nouveau fournisseur dans le tableau "Tlb_Fournisseurs" de la feuille "Paramètres".
Le principe est le suivant: je renseigne les différents texetBox, et lorsque j'arrive à la ComboBox "Fournisseur", c'est un nouveau fournisseur, alors j'ouvre le formulaire qui se trouve juste en dessous du ComboBox, je rajoute le nouveau fournisseur, je ferme ce formulaire et je reviens sur le ComboBox et ce dernier a pris en compte la nouvelle ligne ajoutée dans le tableau "Tbl_Fournisseurs".
Je continue ensuite à renseigner les autres TexteBox.
Je n'arrive pas à lui dire d'actualiser mon ComboBox à la fermeture du formulaire "Fournisseur" et de me donner le Focus sur le ComboBox.
Aurais-tu une solution?
Je te mets le fichier en pièces jointes.
Lorsque tu ouvriras le fichier, click sur l'onglet "Menu" en haut à gauche, et tu auras accès aux commandes.
Merci à toi.
 

Pièces jointes

  • Test Magasin 2.xlsm
    156.6 KB · Affichages: 6

Discussions similaires

Réponses
69
Affichages
5 K
Réponses
12
Affichages
629

Statistiques des forums

Discussions
314 727
Messages
2 112 263
Membres
111 477
dernier inscrit
hanaz