VBA sélection d'une piece

Bonjour,

je vous envoie un fichier ou j'ai enlever les infos confidentielles.

Cela fait deux mois que je cherche a créer un userform qui me permettrait de sélectionner des pièces dans n'importe quel onglet du classeur.

chaque onglet représente une famille de pièce et dans chaque onglet on retrouve les références des pièces avec des caractéristiques.

J'ai donc créer une liste déroulante relié a la feuille TabCategorie comme vous pouvez le voir sur le fichier

donc au final l'initialisation de la userform fonctionne très bien els combobox se remplis correctement.

maintenant pour effectuer la recherche (bouton rechercher) j'ai essaye plusieurs méthode donc la classique avec tableau et boucle mais le code est trop long donc j'ai essaye d'utilisé une variable flag qui renvoyer la valeur vrai ou faux en fonction du choix dans les combobox 1 ou 2.

J'ai aussi réussi a utiliser la fonction autofilter qui marche très bien. la deux difficulté sont apparue :
le fichier est passé de 500ko a 13000ko ???
Création d'une fonction remplir box via l'initialisation de la userform pour que sa reinitialise la userform lorsqu'il y a changement d'une combo.

SVP , Quelle solution serait la plus simple selon vous pour réaliser cette sélection de base de données ???

3 réponses

  1. Re,

    Apparement tes macros et ton userform fonctionne bien
    Je ne comprends pas bien ce que tu voudrais de plus
    Reposes ta question sur le forum en donnant plus de précisions, c'est très technique et pas forcément compréhensible pour un néophyte !

    Cdlmnt
    Via

    0
    1. question 1 : pourquoi quand j'utilise la fonction autofilter mon fichier passe de 400 a 13000 ko

      question 2 : concernant le fichier envoyé je voudrais afficher le résultat sur la feuil1 en ligne !! en dessous des noms des colonnes qui s'affiche en rouge

      question 3 : la ou le programme marche pas ===== explication : lorsqu'on fait un choix dans la userform, il y a souvent plusieurs réponse correspondant à ces choix et la ca marche pas. je voudrais afficher les lignes correspondantes au choix effectué dans la userform.
      0
    2. @jubatailJe n'ai pas de réponse à la question 1

      Pour la 2/3 dans la macro tu fais varier la ligne de retour, la colonne étant toujours 1
      While ResultDesignation(j) <> "" 'And ResultReference(j) <> ""
      .Cells(i + 5, 1) = ResultDesignation(j)
      donc les résultats sont présentés en colonne
      C'est l'inverse qu'il faut faire pour présenter en ligne et sur plusieurs lignessoit quelque chose comme :
      .Cells(j + 5, 1 + i) = ResultDesignation(j)

      A tester

      Cdlmnt
      Via
      0
    3. @via55With Worksheets(NomFeuille)
      While .Cells(l, c) <> ""
      flag = True 'D'abord on suppose que tous les CAT(i) sont à VRAI

      For i = 1 To 20
      CAT(i) = (.Cells(l, c + i).Text = CAT_NOM(i)) Or CAT_NOM(i) = ""
      If Not CAT(i) Then flag = False 'si CAT(i) est faux : flag devient false
      Next i

      If flag = False Then 'si flag est vrai, tous les CAT(i) sont à VRAI
      ResultReference(j) = .Cells(l, c)
      ResultFournisseur(j) = .Cells(l, c - 1)
      ResultDesignation(j) = .Cells(l, c)

      j = j + 1

      La juste au dessus il faudrait qu'il affiche que les résultats qui correspond au flag = false quand on regarde sa devrait remplir le tableau avec une seule reference si on choisie un moteur de type LSES90 par exemple.... quand le flag passe a faux il mémorise pas le contenu de la combo box ?

      End If

      l = l + 1
      Wend
      End With
      0
    4. @jubatailN'ayant pas été à l'origine de ta macro de recherche je ne comprends pas bien comment elle fonctionne ni ton histoire de flag

      Pour la modifier fais une redemande sur le forum pour avoir quelqu'un de plus compétent que moi
      0
    5. @via55en tout cas merci quand même
      cordialement
      0
  2. J'espère que ça ira comme ça :
    https://mon-partage.fr/f/XtL64JI3/

    Merci pour les conseils et j'espère que votre réponse pourra maider. J'ai déjà bien avance dans le travail il faut juste que je le decide... Et que ça marche parfaitement
    0
    1. A LA BASE MON FICHIER CONTIEN beaucoup plus d'onglet mais j'ai réduit le fichier
      0
  3. Bonjour

    Où est le fichier ?
    Le poster sur mon partage.fr, faire créer un lien, le copier et revenir le coller ici

    Cdlmnt
    Via
    0