VBA - probleme sur listebox

Bonjour,
Voilà j'ai un fichier avec une liste de produits, j'aimerai que sur une autre feuille je puisse faire une recherche "simplifiée" c'est à dire quand je clic sur la commandbox "ELECTRICITE" qu'il apparaisse dans la listebox du dessous la plage que j'ai nommée "ELECTRICITE" qui se trouve sur ma feuille "code_produits", ça c'est une premiere chose.
En second, j'aimerai faire une recherche par mot clef par le biais de mon TextBox1 mais ma formule VBA ne fonctionne pas...
Pourriez vous m'aidier...
Cordialement,
Ci dessous mon fichier
https://www.cjoint.com/?0FzllddbsNi

22 réponses

Résumé de la discussion

Le problème porte sur une mise en œuvre VBA : cliquer sur la commandbox 'ELECTRICITE' doit afficher dans une ListBox la plage nommée sur la feuille 'code_produits', et la recherche via TextBox1 ne fonctionne pas. Des répondants recommandent d’intégrer l’intégralité du code VBA d’un fichier source et d’adapter les noms des objets dans le vôtre, notamment si une ListView est utilisée pour afficher la plage nommée. D'autres conseils évoquent l'utilisation du nom de CodeName de la feuille et des corrections dans l'initialisation, par exemple en ajustant les indices et les plages dans ListBox1.List. En pratique, il faut aussi vérifier que la plage nommée et le nom de la feuille sont cohérents entre les classeurs.

Bobot (l’IA à votre service)
  1. Bonjour,

    regarde sur:
    http://forum.excel-pratique.com/excel/probleme-avec-petite-macro-t28865.html

    tu doit touver ta solution pour "erreur de compilation, projet ou bibliothèque introuvable"

    on ses pas quelle version excel ?
    pour ton XP il faut etre en service Pack(SP6)

    A+

    Maurice
    0
    1. Re,

      Dans votre fichier d'origine, il y a une listview. Recopier tout le code du fichier de foo dans le vba de votre fichier d'origine en modifiant les noms des objets si nécessaire.

      essayez et rendez compte svp

      A+
      0
      1. Re,

        ce doit etre le chemin du composant listview qui n'est pas le bon. Quel OS avez-vous (XP, W7 32bits ou 64bits, W8 32bits ou 64bits ou ...) ???
        0
        1. Xp
          0
      2. Bonjour
        Pour la 2eme fois voici une listeView
        A toi de jouer

        http://cjoint.com/?CGqmAVupkps

        A+

        Maurice
        0
        1. Bonjour,

          Ne desesperez pas, cette fois-ci, vous serez peut-etre "entedu"

          Bye
          0
        2. ça ne fonctionne pas il m'indique une "erreur de compilation, projet ou bibliothèque introuvable"
          0
      3. Bonjour

        utilise le CodeName de la feuil

        Private Sub Workbook_Open()
        Feuil3.Select
        End Sub

        A+

        Maurice
        0
        1. Re,

          Private Sub Workbook_Open()
          Worksheets("feuil3").Activate
          End Sub

          A+
          0
          1. Bonjour,
            J'ai une nouvelle demande après avoir lu plusieurs forum il semblerait que c'est plus facile d'utiliser une listview?? j'ai inséré une listview en dessous de ma listbox pour faire un essai avant de supprimer ma listbox, mais je ne comprends pas comment la paramétrer pour avoir les meme fonction que ma listbox??
            Un grand merci pour votre aide très précieuse !

            https://www.cjoint.com/?3GqlKXeJXyf
            0
          2. Bonjour,

            je regarde cela cette apres-midi.

            A+
            0
        2. Re,

          sans decoupe designation sur mot cles

          https://www.cjoint.com/?CFBmh2cmIOz

          A+
          0
          1. c'est vraiment top !! par contre je ne comprend pas " sans découpe.."
            0
          2. Re,

            quand vous choisissez un mot cle, la designation s'affiche sur une seule ligne, pas sur x lignes comme le choix des boutons
            0
          3. quand je tape un mot clef, la recherche fonctionne bien, quand j'efface mon mot clef et que je clic directement sur la listbox il me fait un message d'erreur...
            0
          4. Re,

            dans sub init()

            mettre un 8 au lieu du 3

            ListBox1.List = Worksheets("code_produits").Range(Cells(2, 1).Address, Cells(Lmax, 8).Address).Value
            0
          5. Re,
            Comment puis-je paramétrer mon classeur pour qu'il s'ouvre directement sue la feuille 3 de recherche?

            merci
            0
        3. Bonjour,

          Des labels, cela convient parfaitement. Peut-etre pas besoin des decouper la designation, car beaucoup de modif pour memoriser les infos?? Vous decidez et je fais

          A+
          0
          1. si je suis obligée de mettre la désignation sur plusieurs lignes pour avoir le contenu complet de ma cellule même si c'est pas très esthétique ! il faudrait également que cela fonctionne pour la recherche par mot clef.
            Merci beaucoup pour votre aide
            0
          2. Re,

            Pas de probleme avec designation sur plusieurs lignes, presque fini. Pour Mot cles, a cogiter, pas prevu de decouper la designation .

            A+
            0
        4. j'ai modifiéle nom de la plage et ca fonctionne pour la commande "LEM". Par contre pourriez vous regarder mon fichier, j'ai apporté des modifs pour que se soit plus lisible. J'aimerai que lorsqu'on clique sur une ligne de la listbox les infomations apparaissement dans les labels correspondants à mes colonnes de la feuille "code_produits" est-il possible de faire ça? peut-être il faut utiliser autre chose que des labels?
          Merci
          https://www.cjoint.com/?3FBkFBLkpH9
          0
          1. https://www.cjoint.com/?3FArnzIcKq4

            oui ca fonctionne par contre j'ai certains boutons de commande qui ne fonctionnent pas et là je ne comprends pas ou est mon erreur???
            Une autre question, est il possible d'avoir la colonne "designation " de ma listbox sur 2 lignes pour que tout soit lisible car tout ne tiens pas sur une ligne?

            Merci encore pour votre aide
            0
            1. Re,

              boutons de commande qui ne fonctionnent pas normal.

              dans Sub Recherche_par_objets(Objet As String)

              remplacez:

              If cel = Objet Then

              par

              If cel Like Objet & "*" Then

              colonne "designation " sur deux lignes, a voir, j'ai une idee a creuser

              A+
              0
          2. Re,

            Refait essais avec premiere methode, plus d'erreur sans modifier quoi que ce soit ????

            Prenez la deuxieme methode.
            0
            1. Re,

              Oblige de changer de methode, pas grave, il y en a pas plusieurs.

              Sub Recherche_par_objets(Objet As String)
                  Dim Lmax, V, plage As Range, cel, col, lig, tableau()
                  
                  With Worksheets("code_produits")
                      ListBox1.Clear
                      Lmax = .Range("A" & Rows.Count).End(xlUp).Row
                      Set plage = .Range("A2:A" & Lmax)
                      ReDim tableau(Lmax, ListBox1.ColumnCount)
                      lig = 0
                      For Each cel In plage
                          If cel = Objet Then
                              tableau(lig, 0) = cel
                              For col = 1 To ListBox1.ColumnCount
                                  tableau(lig, col) = cel.Offset(, col)
                              Next col
                              lig = lig + 1
                          End If
                      Next cel
                      ListBox1.List = tableau
                  End With
              End Sub


              A+
              0
              1. Bonjour,

                Quelle erreur ????

                'largeur Colonnes pour 8 colonnes, adaptez la largeur en modifiant le nombre de pt de la colonne
                ListBox1.ColumnWidths = "50 pt;50 pt;75 pt;50 pt;60 pt;75 pt;50 pt;75 pt"
                0
                1. ok pour les largeur de colonnes. Par contre toujours l'erreur sur la ligne
                  ListBox1.List(ListBox1.ListCount - 1, col) = cel.Offset(, col).Value


                  de la recherche par objet dès que je clic sur un bouton de contrôle je vous laisse constater sur le fichier joint.
                  https://www.cjoint.com/?3FApEEEmeUj
                  0
                2. Re,
                  Je regarde le probleme.

                  A+
                  0
              2. Re,

                listbox remplie par boutons de commnde ou mot cles

                https://www.cjoint.com/?CFzrnbvnX43
                0
                1. c'est exactement ça, merci beaucoup !!! juste une dernière question comment jepeux gérer la largeur des colonnes dans la listbox?
                  0
                2. je viens de rajouter des lignes à ma liste de produits dans le 1er onglet mais quand je clic sur un bouton de commande il m'indique cette erreur en jaune dans le VBA (je l'ai souligné dans le texte ci dessous)
                  Sub Recherche_par_objets(Objet As String)
                  Dim Lmax, V, plage As Range, cel, col

                  Sub Recherche_par_objets(Objet As String)
                      Dim Lmax, V, plage As Range, cel, col
                      
                      With Worksheets("code_produits")
                          ListBox1.Clear
                          Lmax = .Range("A" & Rows.Count).End(xlUp).Row
                          Set plage = .Range("A2:A" & Lmax)
                          For Each cel In plage
                              If cel = Objet Then
                                  ListBox1.AddItem cel
                                  For col = 1 To ListBox1.ColumnCount
                                      ListBox1.List(ListBox1.ListCount - 1, col) = cel.Offset(, col).Value                Next col
                              End If
                          Next cel
                      End With
                  End Sub
                  0
              3. Re,

                commandbox est-ce-que par hazard ce serait les boutons de commandes ????
                0
                1. oui c ça
                  0
              4. Bonjour
                voila une ListView
                ses plus jolie
                a toi de voir

                http://cjoint.com/?3FzmLMIKTLG

                A+

                Maurice
                0
                1. Merci mais ca ne marche pas "impossible de charger l'objet car il n'est pas disponible sur cette machine"
                  0
              • 1
              • 2