Pre filtre sur une combo box

zefirstfan

XLDnaute Junior
Bonjour a tous,
Sur une petite appli qui me permet de rentrer des ordres de travaux dans une base via un userform (voir sur l'exemple ci-joint une version simplifiee), je souhaiterai que la combo box "code" soit pre-filtree en fonction du choix realise dans la combo "category".
Category = Electricite, Plomberie...
Code (en fait des sous categories )= ELEC1, ELEC2, PLUM1,PLUM2.
Ce que je voudrais: Si je choisi Electricite en Category, je souhaite seulement qu'apparaissent les codes dependant de cette categorie.
J'ai bien entendu cherche sur les post precedents mais je n'ai pas trouve Ze solution.
Merci pour votre aide et bonne journee.
Zefirstfan.
 

Pièces jointes

  • Combo box filtree.xls
    38 KB · Affichages: 47
  • Combo box filtree.xls
    38 KB · Affichages: 41
  • Combo box filtree.xls
    38 KB · Affichages: 45

laetitia90

XLDnaute Barbatruc
Re : Pre filtre sur une combo box

bonjour zefirstfan:)
"brut" je dirais comme cela mais bon cela va dependre de ce que tu veus faire apres???

code user

Code:
Option Compare Text
Private Sub ComboBox1_Change()
Dim c As Range
With Sheets("PARAMS")
ComboBox2.Clear
For Each c In .Range("c2", .Cells(Rows.Count, "c").End(xlUp))
If Left(ComboBox1, 3) = Left(c, 3) Then ComboBox2.AddItem c
Next
End With
End Sub
 

zefirstfan

XLDnaute Junior
Re : Pre filtre sur une combo box

Bonjour Laetitia,
Merci pour ta reponse.
Je teste tout de suite et je te tiens au courant.
En fait, j'ai deja le formulaire et la base qui sont prets ( je renseigne 7 criteres ) et il me manquait juste le code pour cette combo box.
Encore merci.
Bonne journee.
 

zefirstfan

XLDnaute Junior
Re : Pre filtre sur une combo box

Super,
Ca marche nickel.
J'ai juste modifie les noms de mes combos et de mes columnes de reference et sa tourne.
Juste une precision. Dans la ligne de code
If Left(ComboBox1, 3) = Left(c, 3) Then
Le 3 correspond aux 3 premieres lettres?
Merci encore.
 

zefirstfan

XLDnaute Junior
Re : Pre filtre sur une combo box

C'est re-moi.

Ca marchait tres bien jusqu'a ce que j'aille un peu plus loin...
En fait, dans mon formulaire complet, j'ai un Textbox qui se remplit automatiquement quand je renseigne le Combo "code". Ca me saisit automatiquement le "detail" correspondant a chaque "code" (voir fichier pj)

Depuis que j'ai rajoute le code de ce matin, si je choisis par exemple PLU1 en code, j'ai le detail correspondant a ELE1 qui s'affiche ( ELE2 pour PLU2...).

J'ai essaye de modifier la ligne de VBA qui me fait le lien entre Code et Detail mais ca bloque a chaque fois.
J'ai mis dans la PJ le detail correspondant a chaque code ( ex: ELE8 = Exterior light not working)
Est il possible d'avoir un petit coup de main pour sortir le code qui va bien pour ce cas particulier.
Merci d'avance.
 

Pièces jointes

  • Combo box filtree.xls
    52 KB · Affichages: 37
  • Combo box filtree.xls
    52 KB · Affichages: 42
  • Combo box filtree.xls
    52 KB · Affichages: 44

laetitia90

XLDnaute Barbatruc
Re : Pre filtre sur une combo box

re,:)

Code:
Dim c As Range
Private Sub ComboBox1_Change()
With Sheets("PARAMS")
ComboBox2.Clear
For Each c In .Range("c2", .Cells(Rows.Count, "c").End(xlUp))
If Left(ComboBox1, 3) = Left(c, 3) Then ComboBox2.AddItem c
Next
End With
End Sub
Private Sub ComboBox2_Change()
TextBox1 = ""
With Sheets("PARAMS")
For Each c In .Range("c2", .Cells(Rows.Count, "c").End(xlUp))
If ComboBox2 = c Then TextBox1 = c.Offset(0, 1): Exit For
Next
End With
End Sub
 
Dernière édition:

zefirstfan

XLDnaute Junior
Re : Pre filtre sur une combo box

Sans vouloir abuser....enfin si un peu quand meme!
Si je rajoute dans la colonne E de "Params" une traduction dans une autre langue de "Detail "(colonne C) et que je souhaite que cette traduction s'affiche automatiquement dans une nouvelle textbox (TextBox13), que faut il faire?
J'ai repris la 2eme partie du code en l'adaptant ainsi

Private Sub ComboBox1_Change2()
TextBox13 = ""
With Sheets("PARAMS")
For Each c In .Range("c2", .Cells(Rows.Count, "c").End(xlUp))
If ComboBox1 = c Then TextBox13 = c.Offset(0, 1): Exit For
Next
End With
End Sub

mais ca ne marche pas, le TextBox13 reste desesperement vide.
Une idee?
Muchas Gracias.
 

laetitia90

XLDnaute Barbatruc
Re : Pre filtre sur une combo box

re, c'est offset qui faut modifier

If ComboBox1 = c Then TextBox13 = c.Offset(0, 2): Exit For

attention on fait qu'une boucle 2 pas utile


Code:
Private Sub ComboBox2_Change()
TextBox1 = "":TextBox13 = ""
With Sheets("PARAMS")
For Each c In .Range("c2", .Cells(Rows.Count, "c").End(xlUp))
If ComboBox2 = c Then TextBox1 = c.Offset(0, 1): TextBox13 = c.Offset(0, 2): Exit For
Next
End With
End Sub
 
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : Pre filtre sur une combo box

re,:)
en regardeant de plus pres!!!
c'est quoi ????

Code:
Private Sub ComboBox1_Change2()

je pense que pour pas multiplier les posts a l'infini zip un fichier sans données confi...avec but a obtenir je le sens pas trop ton "truc" en fait!!! on peut partir sur d'autres bases avec ton projet avec beaucoup de lignes de code en moins
 

zefirstfan

XLDnaute Junior
Re : Pre filtre sur une combo box

Bonsoir Laetitia,
Ca marche nickel comme ça.
Je t'envoie quand même le fichier en Xlsm.
Comme tu le verras, rien de bien compliqué.
Dans Formulaire, on renseigne 9 critères dont 2 automatisés (les TxtBox qui m'ont occupé ce lundi) pour chaque requests.
Lorsque l'on save, ça part sur une table (request). Sur cette feuille, je fais glisser les formules des colonnes J a P manuellement jusqu'aux dernières saisies et je peux ensuite analyser via un TCD/pivot table situé en feuille "Analysis" en appliquant plusieurs tri.
Lorsque j'aurais assez de données archivées, je ferais une autre feuille de présentation avec les stats générales, graphiques etc.
Je trouve que le code n'est pas trop long et le fichier ne pèse que 50 Ko. J'aurais au total environ 5000 lignes a traiter.
J'ai trouvé toutes les lignes de code sur Excel Downloads donc il est surement possible de compiler.
Mais dans l'état actuel des choses, ça me va très bien tel quel.
J'avais inséré un USF Calendar-popup pour renseigner la date. Ça marche nickel sur mon laptop (paramétré en JJ/MM/AAAA) mais ça plante sur celui du bureau paramétré en MM/JJ/AAAA).
Mais c'est pas trop gênant.
En tout cas, merci pour ton aide et ta rapidité.
Bonne soirée.
 

Pièces jointes

  • Requests pour controle code.xlsm
    54.6 KB · Affichages: 57

Statistiques des forums

Discussions
312 675
Messages
2 090 799
Membres
104 668
dernier inscrit
Mac-Breheny