Textbox et listbox.

cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013 - 10 mars 2008 à 09:53
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008 - 10 mars 2008 à 22:38
Bonjour a toutes et tous,


voici ma question:


j'ai un tableau sur une feuille excel, dans la première colonne j'ai une réference de 4 chiffres, dans la deuxieme, un article et dans la troisième le prix.

Sur un userForm, j'ai un textbox et une listbox.

je souhaiterais, lorsque l'utilisateur entre la référence dans la textbox et qu'il appuye sur la touche 'enter', le nom de l'article et le prix liés à la référence encodée s'affichent dans la listbox (scindées en deux colonnes, une pour le prix et une pour l'article). L'utilisateur pourrait ainsi encoder une liste d'article (le meme article pouvant apparaitre plusieurs fois...)

Je ne sais trop par ou commencer, quelqu'un peut me donner une piste?

Merci d'avance!

5 réponses

nerone21 Messages postés 108 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 5 mai 2011
10 mars 2008 à 10:48
Salut...

Pourquoi ne pas plutot utiliser une listview?

ensuite pour lire dans un fichier excel il faut utiliser les librairies microsoft.office.interop.excel

si tu as besoin d'exemples...

Bon courage
0
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
10 mars 2008 à 21:13
Tu dois d'abort ajouter la référence Excel à ton projet si se n'est pas déja fait. Pour cela va dans la barre de Menu VB6:
Projet > Références... > Microsoft Excel 10.0 Object Library

Si tu n'a pas de bouton ajouter à la liste et que tu veut le faire sur l'appui de la touche Entrer, voila le code:


Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
   
Dim
appExcel As Excel.Application
'Application Excel
Dim wbExcel As Excel.Workbook
'Classeur Excel
Dim wsExcel As Excel.Worksheet
'Feuille Excel

DimiAs Integer
Dim NbrLigneExcel As Integer
Dim Article As String
Dim Prix As String
Dim ligne As String

    'Décodage de la touche Entrer
    If KeyCode = vbKeyReturn Then
        'Ouverture de l'application
        Set appExcel = CreateObject("Excel.Application")
        'Ouverture du fichier Excel
        Set wbExcel = appExcel.Workbooks.Open("CHEMIN DU FICHIER.XLS")

        'wsExcel correspond à la première feuille du fichier
        SetwsExcel = wbExcel.Worksheets(1)
    Else
         Exit Sub   ' Si une autre touche que Entrer Enfoncer >> On quitte la procédure
    End If

        ' Récupération du nombre de ligne du fichier Excel
        NbrLigneExcel = Application.WorksheetFunction.CountA(W_FichierExcelEntree.Columns(1))

        For i=0 to NbrLigneExcel
              ' Recherche de la référence l'article dans la colonne 1
              If StrComp(Text1.Text, wsExel.cells(i,1)) = 0 Then
                    Article =wsExel.cells(i,2)
                    Prix = wsExel.cells(i,3)
                    Exit For 'On sort de la boucle
              End If
        Next i
      
    wbExcel.Close  'Fermeture du classeur Excel
    appExcel.Quit   'Fermeture de l'application Excel

    'Libération des Référence
    Set wsExcel = Nothing
    Set wbExcel = Nothing
    Set appExcel = Nothing

    'Message Erreur si aucun Article est trouver
    If i = NbrLigneExcel + 1 Then
          MsgBox "Aucun Article ne correspond à la référence " & Text1.Text, vbInformation, "Message Erreur"
          Exit Sub 'On sort de la procédure
    End If

     'Remplissage de la listeBox si l'article est trouver
     ' Ici je limite l'article a 5 caractére (ajoute des @ si tu veut augmenter ton format)
     ligne = Format(Article, "!@@@@@") & "  " & Format(Prix, "00.00") & " ?"
     List1.AddItem ligne

End Sub

Voila, je ne les pas testé, il se peut qu'il y ait des erreurs. Mais sa te fais deja une bonne base pour commencer, aprés tu peux l'adapter à ta sauce. Bon courage pour la suite !!
0
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
10 mars 2008 à 21:17
Dsl pour les couleur, certaine ne corresponde pas... je ne sait pas se qui c'est passer. En tous cas sa n'empêche pas la compréhension. Derniére remarque, il serait plus propre de faire une fonction Excel dans laquel tu mais le code pour recherché la référence de ton Article. Je t'ai tous mis dans la procédure KeyDown de ta TextBox pour aller plus vite.
0
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
10 mars 2008 à 21:24
Encore une petite remarque, j'ai constater une erreur dans le code et comme je ne sais pas comment Editer mon message sur ce site.... Bref il faut initialisé i à 1 et non à 0 dans ta boucle: For i = 1 to NbrLigneExcel

Voili Voilou. Bonne soirée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lunikmarty Messages postés 55 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 17 avril 2008
10 mars 2008 à 22:38
Tu peux aussi ouvrir excel une seul fois, te faire un tableau dynamique pour ton Prix, ta référence et ton article. Tu ouvre excel et tu copie l'ensemble de tes ligne dans les différent tableau. Il ne te restera plus qu'a parcourrir tes tableau pour afficher les élément dans ta ListBox.... c'est beacoup plus simple.
0
Rejoignez-nous