Créer un formulaire de recherche multicritère

jess55

XLDnaute Nouveau
Bonjour,
Je dois réaliser une base de donnée sous excel afin de gérer un stock d'outil. Il faut aussi que l'utilisateur puisse chercher l'outil dont il a besoin.
Je ne peux pas mettre mon fichier en pièce jointe pour des raisons de confidentialité.
Voilà mon problème:
J'ai une feuille nommé Outil, dans cette feuille ce trouve:
-N°Outil
-Famille ComboBox
-Type ComboBox
-MatériauOutil ComboBox
-Revêtement OptionButton
-Longueur TextBox
-Longueur de coupe TextBox
-Nombrededents TextBox
-MatériauUsiné Combobox
J'ai aussi un Formulaire nommé RechercheOutil avec tous ces renseignements dans différents outils désignés à côté et une listBox qui me renvoie les données.
Le problème que je rencontre c'est que je n'arrive pas à définir ma recherche par rapport à tous mes critères: Ex. si je renseigne la famille, ma listbox me donne tous les outils qui y correspond comment faire pour que selon le critère suivant ma liste diminue.*

Merci de votre aide
 

jess55

XLDnaute Nouveau
Re : Créer un formulaire de recherche multicritère

Rebonjour tous le monde,

Voilà j'ai un peu avancé mes j'ai de nouveau un petit problème :confused:. Dans mon formulaire UsfSortiOutil lorsque je lui demande de me donner l'emplacement en fonction de mon numéro d'outil il ne me donne que les codes d'emplacement où il n'y a pas de numéro d'outil. Quelqu'un pourrait-il me dire comment faire pour qu'il me donne l'emplacement qui correspond au numéro d'outil. S'il vous plaît. Merci d'avance.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Créer un formulaire de recherche multicritère

Bonjour le fil, bonjour le forum,

Jess je ne comprends pas pourquoi tu utilises plusieurs bases de données. Cela signifie que quand tu vas ajouter ou supprimer un outil il te faudra le supprimer ou l'ajouter dans les 3 bases !...
Normalement tu devrais tout avoir dans la même base. Comme ça, à partir du moment où tu as récupéré le numéro (unique) de l'outil il te suffit d'indiquer un numéro de colonne pour récupérer la donnée.
Ton fichier avec une base pour la recherche, une autre pour l'emplacement et encore une autre pour la gestion du stock t'oblige a utiliser plusieurs UserForms alors que tu pourrais avoir le même résultat avec un seul.
Je ne renomme pas les contrôles et laisse le nom par défaut et quand j'ouvre ton fichier avec tout qui est renommé je suis paumé et j'ai pas envie de continuer...
Si tu n'est pas pressée, je peux te faire un proposition à ma manière mais je ne peux pas te dire quand elle sera terminée.
Sinon, après le boulot, je regarderai comment t'expliquer une possibilité pour résoudre ton problème avec un Find...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Créer un formulaire de recherche multicritère

Bonsoir le fil, bonsoir le forum,

Le fichier modifié en pièce jointe avec le code ci-dessous :
Code:
Private Sub ListBRecherche_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call actu_SO
Unload Me
UsfSortieOutil.Show
End Sub
Code:
Private Sub CmBt_Recherche_Click()
Call actu_SO
Unload Me
UsfSortieOutil.Show
End Sub

Code:
Public Sub actu_SO()
Dim vr As String
Dim r As Range

With UsfSortieOutil
    .TxBnOutil.Value = Recherche.TextBox1.Value
    vr = Recherche.TextBox1.Value
    Set r = Sheets("Emplacement").Columns(1).Find(vr, , xlValues, xlWhole)
    .TxBLocalisation = r.Offset(0, 5).Value
    Set r = Sheets("Stock").Columns(1).Find(vr, , xlValues, xlWhole)
    .TxBQteStock = r.Offset(0, 2)
End With
End Sub
Le fichier :
 

Pièces jointes

  • Xl0000002.xls
    130 KB · Affichages: 99
  • Xl0000002.xls
    130 KB · Affichages: 93
  • Xl0000002.xls
    130 KB · Affichages: 107

jess55

XLDnaute Nouveau
Re : Créer un formulaire de recherche multicritère

Bonjour le forum,
Merci pour ton aide Robert ça fonctionne super. Je sais que le système que j'utilise avec plusieurs bases n'ai pas super pratique mais c'est comme ça qu'on me demande de faire.Désolé.
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 898
Membres
101 834
dernier inscrit
Jeremy06510