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

XL 2016 Filtrer une liste combo et afficher les info dans des textbox

dindin

XLDnaute Occasionnel
Bonjour le Forum
voir Pc jointe
le code est à Mr BOISGONTIER que j'essaye de l'adapter à mon fichier.
Merci pour votre aide
 

Pièces jointes

  • FormVisuFiche.xls
    112 KB · Affichages: 20

Dranreb

XLDnaute Barbatruc
Bonsoir.
Il semble que vous confondiez les numéros d'items dans la ComboBox avec les numéros de lignes dans la base. Ce ne sont pas les mêmes si vous ne prenez pas l'intégralité des données pour la liste de la ComboBox.
Pourquoi je ne retrouve pas le Sujet calculé avec les fonctions de mon module MSujetCBx que je vous avait joint la dernière fois ?
L'élément 0 du sujet contient la liste des clés pour la ComboBox, mais l'élément 1 contient les listes de numéros de lignes dans la base correspondant aux clés du 0 !
J'avais fait une démo qui s'en servait pour sélectionner les cellules. Ce serait tout aussi facile de s'en servir pour garnir des TextBox.
 
Dernière édition:

dindin

XLDnaute Occasionnel
Désolé Dranreb
J'ai essayé en vain d'adapter votre fichier. Je suis très novice en VBA. J'arrive pas à comprendre le raisonnement.
Pour gagner du temps j'ai voudrais afficher directement la liste filtrée dans la combo.
Je bloque quand j'essaye de récupérer le n de la ligne qui correspond au choix de combo.
 

Dranreb

XLDnaute Barbatruc
La démo faisait ça en une seule instruction, mais en plus il y avait une CBxCode_Change qui traitait le choix. Veuillez reprendre ce principe.
VB:
Option Explicit
Private RngDon As Range, SujTR, SujDM
Private Sub UserForm_Initialize()
   Dim Sujet
   Set RngDon = Feuil1.[A2:F2].Resize(Feuil1.[A65000].End(xlUp).Row - 1)
   Sujet = SujetCBx(RngDon, Colonne:=1)
   SujTR = SujCBxLike(Sujet, "TR-*"): ComboBox1.List = SujTR(0)
   SujDM = SujCBxLike(Sujet, "DM-*"): ComboBox2.List = SujDM(0)
   End Sub
Private Sub ComboBox1_Change()
   Dim Ligne As Long, TVL()
   If Not ComboBox1.MatchFound Then Exit Sub
   Ligne = SujTR(1)(ComboBox1.ListIndex)(1)
   TVL = RngDon.Rows(Ligne).Value
   Me.TextBox5 = TVL(1, 1)
   Me.TextBox1 = TVL(1, 2)
   Me.TextBox2 = TVL(1, 3)
   Me.TextBox3 = TVL(1, 4)
   Me.TextBox4 = TVL(1, 5)
   End Sub
Remarque: ça mériterait d'être mis sous forme de tableau Excel et d'utiliser un objet ComboBoxLiées et un objet ControlsAssociés. Là on réinvente un peu la poudre …
 
Dernière édition:

Discussions similaires

Réponses
68
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…