Userform avec 2 filtres + menu déroulant status

Bonjour,

Ce userform a pour but de simplifier la saisie de données par l'utilisateur, les données présentes ne sont pas les données d'origine. il faut partir du principe que le fichier peut contenir jusqu'à 1000 lignes.

j'aimerais que dans le userform je puisse sélectionner un produit en fontion de son nom et de sa couleur. cela correspond à 2 filtres, mon problème est que le premier filtre marche ( désignation du produit) mais que le second est sélectionnable mais ne filtre rien. je sais pas si je suis bien clair.

Mon second problème; il existe trois types de status:

Fini

En attente

En cours

j'aimerai que cela apparaisse avec un menu déroulant de façon à ce que la personne qui veuille modifier le status ne puisse avoir que ces trois choix, pour éviter les erreurs de saisie.

J'ai tellement trifouiller le fichier que maintenant je me retrouve avec une erreur.

Je vous remercie d'avance Pour l'aide que vous pourrez m'apporter et le temps passé à résoudre ce problème

Cordialement,

42test.xlsm (25.59 Ko)

Bonjour

A tester

je te remercie, c'est exactement ce qu'il me fallait, par contre comme l'autre fois peux tu me mettre des commentaires sur ton code s'il te plait,

merci encore

Bonjour

A lire

merci,

je me permet de réouvrir car j'ai essayer de rajouter dans le même esprit une listbox qui dépent de la combobox 2 mais rien ne s'afficher dans ma listbox.

des textbox (non créées ici) seront en fonction de cette listbox,

j'ai essayé de le faire en reprenant ton code mais je dois oublier quelque chose

30tartare-test.xlsm (46.24 Ko)

C'est bon j'ai trouvé la solution

Je vais réouvrir ce topic, dites moi si je dois en recrééer un? j'ai detecté un problème mais je n'arrive pas à le résoudre.

J'ai une première Combobox ou je sélectionne une donnée qui filtre une seconde combobox qui elle filtre une listbox ou sont afficher la liste des pièces

la première combobox comporte 5 options ( fournisseur) de filtre:

canard

vache

mouton

cheval

porc

la seconde combobox comporte 3 options ( périmètre) de filtre:

voiture

moto

avion

si je sélectionne canard lors j'ai la possibilité de choisir comme option avion ou voiture

suivant l'un ou l'autre le filtre agit bien

je me retrouve avec deux listes différentes (désignation)

en revanche si je prends vache il me propose une seule option "avion" ( ce qui est normal) mais il m'affiche la liste complete de toutes les pices de "avion" alors qu'il devrait m'en afficher que 3 .

Je ne sais pas si j'ai été très clair. Pas facile d'expliquer un problème.

j'ai mis le ficher en pj, ce sera peut être plus clair.

D'avance merci pour votre aide,

Cordialement,

65tartare-testv2.xlsm (55.16 Ko)

Bonjour

C'est une nouvelle mode de ne pas dire bonjour (au moins une fois par jour) ?

Sinon quand tu choisis une valeur "Périmètre" il faut que tu filtre aussi avec "Fournisseur"

Private Sub CbbPerimetre_Change()
Dim J As Long
Dim Mondico1 As Object

  If Me.CbbPerimetre.ListIndex = -1 Then Exit Sub
  Set Mondico1 = CreateObject("Scripting.dictionary")

  For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
    If Ws.Range("V" & J) = Me.CbbFournisseur AndWs.Range("D" & J) = Me.CbbPerimetre Then Mondico1(Ws.Range("A" & J).Value) = ""
  Next J

  If Mondico1.Count > 0 Then
    Me.LBDesignation.List = Application.Transpose(Mondico1.keys)
  End If
End Sub

Pour info : tu peux te servir du même nom de variable (Mondico), comme ce ne sont que des variables locales, elles sont détruites à la fin de la procédure

Bonjour,

je te remercie ,

excuse pour le bonjour, j'étais tellement absorber par le sujet que j'en ai oublié les règles de politesse.

j'essaye cela demain matin et dans la foulé je marquerai le topique comme résolu.

je te remercie pour ton aide toujours aussi rapide.

Cordialement,

Bonjour,

Cela fonctionne parfaitement bien. J'aurai deux dernières requêtes concernant ce sujet :

Private Sub TbNomTeinte_Change()
If LbTeinte.Selected = "205.375" Then
Me.TbNomTeinte = "noir titane"
End Sub

j'aimerai qu'en fonction d'une valeur sélectionnée que s'affiche une valeur dans une textbox

Içi si je sélectionne 20.375, j'aimerai que dans la teextbox s'affiche "noir titane"

Deuxième chose, j'aimerai avoir un bouton qui modifie les cases excel, en fait si je modifie une valeur de textebox à la main, j'aimerai à l'aide de ce bouton que cela modifie la case dans le fichier excel.

D'avance merci,

Cordialement,

Bonjour

tartare a écrit :

j'aimerai qu'en fonction d'une valeur sélectionnée que s'affiche une valeur dans une textbox

Içi si je sélectionne 20.375, j'aimerai que dans la teextbox s'affiche "noir titane"

Où est le contrôle TbNomTeinte ?

Où sélectionnes tu 20.375 ?

Fais un tableau de correspondance d'un côté les valeurs et de l'autre les couleurs

tartare a écrit :

Deuxième chose, j'aimerai avoir un bouton qui modifie les cases excel, en fait si je modifie une valeur de textebox à la main, j'aimerai à l'aide de ce bouton que cela modifie la case dans le fichier excel.

Quel TextBox, il n'y a pas de TextBox ?

Fournis le dernier fichier en cours en y expliquant bien ce que tu veux

Oui effectivement se sera mieux, j'ai juste oublie de le metre, je le rajoute

pour le premier sujet:

je veux que lorque je sélectionne la teinte 205.375 que dans la textbox qui est juste au dessus (TbNomTeinte) s'affiche la couleur associé.cette couleur n'est pas dans le document

pour l'exemple 205.375 serai "jaune olive"

Pour le bouton modification, je l'ai créer mais je ne sais pas du tout quoi mettre dedans:

en gros j'aurais à modifier les textbox et les combosboxs, elle seront différentes de la feuille excel, j'aimerais que ce bouton modifie la ligne correspondant de la pièce dans cette feuille.

je sais pas si c'est très clair.

merci de ton aide et pour ta patience.

Cordialement,

Bonjour

tartare a écrit :

cette couleur n'est pas dans le document

D'accord on lance une pièce en l'air , une fois retombée si c'est sur le côté pile on dit bleu, si c'est le côté face on dit vert et sur la tranche c'est indéterminé ?

Sérieusement si ce n'est que 2 à 3 valeurs on pourrait les marquer en dur dans le code, mais pour la mise à jour cela serait plus facile d'avoir un tableau de correspondance

Je ne suis pas trop d'accord avec ton remplissage de la LbTeinte, tu vérifies seulement la désignation

Donc il ne peut y avoir d'autre désignation identique avec un fournisseur et/ou un périmètre différent ?

Une dernière précision : D'après ton code il ne peut y avoir qu'un numéro unique en colonne J correspondant à une désignation, exact ?

Il faut une base de donnée plus étoffée que celle actuelle car avec 2 lignes identiques c'est très dur d'en tirer des conclusions

Il faut vraiment des données qui reflète la réalité

D'accord on lance une pièce en l'air , une fois retombée si c'est sur le côté pile on dit bleu, si c'est le côté face on dit vert et sur la tranche c'est indéterminé ?

Sérieusement si ce n'est que 2 à 3 valeurs on pourrait les marquer en dur dans le code, mais pour la mise à jour cela serait plus facile d'avoir un tableau de correspondance

il y aura tout au plus 5 à 6 couleurs, donc je veux la mettre en dur dans le code par contre, ce que je ne sais pas c'est pourquoi le nom ne s'affiche pas. mais je n'arrive pas à créer la condition pour afficher le texte en fonction de la valeur de la listbox.

Je ne suis pas trop d'accord avec ton remplissage de la LbTeinte, tu vérifies seulement la désignation

Donc il ne peut y avoir d'autre désignation identique avec un fournisseur et/ou un périmètre différent ?

c'est exact il ne peux pas y avoir une désignation identique avec un fournisseur et/ou un périmètre différent.

Il faut une base de donnée plus étoffée que celle actuelle car avec 2 lignes identiques c'est très dur d'en tirer des conclusions

Il faut vraiment des données qui reflète la réalité

c'est super compliqué car ce sont des données vraiment sensibles, ou alors il faut que je te prépare un tableau plus complet mais avec de vrais valeurs.

je fait cela en début de soirée

Bonjour

Ok pour la LbTeinte

Mais peut il avoir plusieurs teintes identiques par désignation ?

Si ce n'est pas le cas avec le fichier je pense te faire une macro

Sinon il me faut plus de données, les valeurs ce sont des valeurs( on ne sait pas si ce sont des vraies)

Si tu changes les données pour les fournisseurs et périmètres ce n'est pas grave, il suffit que les données soient cohérentes (que le même mot remplace le même fournisseur etc ....)

Mais peut il avoir plusieurs teintes identiques par désignation ?

je viens de te préparer un fichier , j'espère qu'il te suffira. tu ne peux pas pas avoir plusieurs teintes identiques pour une désignation.

ici code couleur:

10 = jaune

20 = vert

30= violet

40= jaune

Bleu= bleu

noir= noir

Orange= orange

40= gris

50= marron

60= rose

concernant le bouton modification te faut il plus d'information?

je te remercie beaucoup pour l'aide que tu m'apporte.

Cordialement,

Bonjour

A vérifier

je viens de tester et j'ai eu plusieurs erreurs.

quand je clique sur lancer la macro j'ai le message suivant:

"impossible de charger le objet car il n'est pas disponible sur cette machine"

j'ai 2 fois le messages puis l'application se lance

quand je clique sur le code couleur un second message apparait et bloque l'application:

"Erreur de compilation : projet ou bibliothèque introuvable"

le code ciblé est le suivant:

Select Case UCase(Me.LbTeinte)

plus précisément "Ucase"


tartare a écrit :

je viens de tester et j'ai eu plusieurs erreurs.

quand je clique sur lancer la macro j'ai le message suivant:

"impossible de charger le objet car il n'est pas disponible sur cette machine"

j'ai 2 fois le messages puis l'application se lance

j'ai trouvé ca vient du menu déroulant avec le calendrier

quand je clique sur le code couleur un second message apparait et bloque l'application:

"Erreur de compilation : projet ou bibliothèque introuvable"

le code ciblé est le suivant:

Select Case UCase(Me.LbTeinte)

plus précisément "Ucase"

Bonjour

Pour le 1er message il me semble que ce sont les DTPickers qui ont disparus

Soit tu les réinstalles, soit tu prends le fichier que tu as posté dans lequel tu changes le code

Pour le second message :

Menu Exécution --> Réinitialiser

Menu Outils --> Références : Tu décoches toutes les références qui ont MANQUANT dans leur nom

ça marche parfaitement bien,

par contre j'ai remarqué un truc en bidouillant tout à l'heure:

si je prends le fournisseur "dupond" et périmètre "intérieur"

il me propose : "designation 1" et "désignation 2"

si je change le fournisseur : par exemple "dagobert" qui n'a que le périmètre "intérieur"

il ne met pas à jour la listbox: il laisse "designation1" et "designation 2" alors qu'il ne devrait y avoir que "désignation 3"

Pourtant dans le code, on a bien suivant le fournisseur et le périmétre:

  For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
    If Ws.Range("V" & J) = Me.CbbFournisseur And Ws.Range("D" & J) = Me.CbbPerimetre Then Mondico(Ws.Range("A" & J).Value) = ""
  Next J
Rechercher des sujets similaires à "userform filtres menu deroulant status"