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

XL 2019 UserForm de recherche

FloToublanc

XLDnaute Nouveau
Bonjour à tous,

Je me permets de solliciter votre aide car cela fait maintenant quelques jours que je n'arrête pas de chercher un moyen de finaliser mon UserForm.
Je vous explique :
  • Sur une feuille de mon classeur (Feuille1), j'ai un tableau d'inventaire avec des numéros de sites, des noms de machines, des numéros de série et années de fabrication.
  • J'ai commencé à construire mon UserForm de manière à ce que lorsque je choisis un site en particulier, il m'affiche toutes les machines et autres critères de ce site.
  • Le problème étant qu'il ne m'affiche à chaque fois seulement les éléments présents dans la première ligne contenant ce numéro de site.
Ce que je cherche en particulier serait de savoir comment afficher les critères des lignes suivantes du tableau pour ce numéro de site.
Le fichier exemple est en pièce-jointe.

Merci d'avance pour votre aide.

Flo.
 

Pièces jointes

  • Test_Userform.xlsm
    39 KB · Affichages: 6

vgendron

XLDnaute Barbatruc
Bonjour

ton formulaire laisse penser que tu ne peux avoir QUE 4 machines maxi pour un site..??

une fois que tu as la liste des machines... que comptes tu en faire??

1) il faudrait je pense aller plus loin dans l'explication de ton projet: à quoi sert ton formulaire? nb de lignes maxi... etc etc

2) tu pourrais par exemple
remplacer le textbox "site" par un combo qui te donne la liste des sites: suffirait donc de selectionner un site parmi ceux proposés

à la place des 4 lignes de textbox, mettre une listbox qui te lites toutes les lignes de ta base de données
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Affichez plutôt dans une ListBox les correspondances trouvées
Et tant qu'à faire les SITE dans une ComboBox
J'ai un module qui peut en dresser une liste classée sans doublon, ainsi que les listes de numéros de lignes de chaque valeur.
 

Jacky67

XLDnaute Barbatruc
Bonjour,
Perso, j'irais certainement vers quelque chose comme ceci (Cela me semble plus approprié)
A voir.....
 

Pièces jointes

  • Test_Userform.xlsm
    42.1 KB · Affichages: 10

FloToublanc

XLDnaute Nouveau
Bonjour,

Le fichier étant en pj n'est qu'un exemple, je compte adapter "mon code" avec vos retours, l'UserForm permet seulement d'avoir une recherche un peu plus "sexy" et rapide que les filtres dans des tableaux ou autres. Le nombre de lignes n'est pas fixe et peut bouger en cas d'achat de nouvelles machines.

Merci pour votre retour, je vais me servir de vos conseils pour avancer.

Cordialement,

Flo
 

Jacky67

XLDnaute Barbatruc
Bonjour Jacky,

Tout d'abord merci de votre retour, je ne comprends pas comment vous faites pour afficher les valeurs sous "Machine", "Année de Construction" et "Numéro de Série" dans votre ListBox.

Cordialement,

Flo

RE..
La listBox est alimentée après un filtre sur le n° du site par ce code
Me.ListBox1.List = [Tableau_Machines].SpecialCells(xlCellTypeVisible).Value
Pour ne pas afficher la colonne A (les sites)
Dans les propriétés de la ListBox1
ColumnCount=4
Pour afficher le nombre de colonne de la base de donnée
ColumnsWidths = 0 pt
On peut dans avec cette propriété configurer la largueur des colonnes des ListBoxs
=0 n'affiche pas la première colonne dans ce cas
Un peu de lecture
Pour le reste de l'affichage, ce n'est que le placement de "Machine", "Année de Construction" et "Numéro de Série" à leurs emplacements appropriés.
 

Pièces jointes

  • Test_Userform V2.xlsm
    55.9 KB · Affichages: 14
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Je n'ai malheureusement pas les compétences nécessaires en VBA pour comprendre tout ce que vous avez pu faire.
C'est peut être parce que vous avez cherché à étudier le code du module de service MSujetCBx au lieu d'essayer de comprendre ce que renvoie dans l'UserForm sa fonction SujetCBx
Elle renvoie Array(LesClés, LesListes)
Avec Sujet(0), donc LesClés: Classé et sans doublon basée 0, à affecter à la ComboBox.List
et Sujet(1), donc LesListes: Tableau basée 0 des listes de numéros de lignes basées 1
TLgn = Sujet(1)(ComboBox1.ListIndex) renvoie donc la liste des numéros de lignes dans RngDon où figure la valeur de la ComboBox1.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…