Lien entre textbox et listbox via touche enter

cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013 - 12 mars 2008 à 09:30
dimitriusai Messages postés 76 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 - 12 mars 2008 à 14:26
 Bonjour,

voici la situation: j'ai une feuille excel de trois colonnes:
colonne A : reférences d'articles (par exemple : 1111, 2222, 3333...)
Colonne B : Articles (pommes, poires...)
Colonne C: Prix

Dans un userForm, j'ai un textBox et une listbox de deux colonnes.
Je souhaiterais que l'utilisateur puisse entre la reference dans la textbox, puis, en appuyant sur la touche "enter" l'article et le prix s'affichent dans la listbox (il pourra entrer plusieurs fois la meme references, et donc avoir plusieurs fois le meme article dans la listbox.



j'ai fait ce code mais il plante quand je veux entrer une reference... il surligne la ligne de code 'call RefArticles'



quelqu'un pour m'aider?




merci d'avance!



Option Explicit

' remplir la listbox2 via la référence :
Private Sub RefArticles(ByVal pReference As String)
    Dim i As Long
  
    ListBox2.Clear
  
    i = 0
    Do While Range("A2").Offset(i, 0).Value <> ""
        If Range("A2").Offset(i, 0).Value = pReference Then
            ListBox2.AddItem
            ListBox2.List(j, 0) = Range("C2").Offset(i, 0).Value
            ListBox2.List(j, 1) = Format(CStr(Range("D2").Offset(i, 0).Value), "0.00")
            j = j + 1
        End If
        i = i + 1
    Loop
End Sub

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim ToucheCode As Long
    ToucheCode = CLng(KeyCode) 'ici on recupere le code de la touche clavier
    If ToucheCode = 13 Then
        Call RefArticles
    End If
    ToucheCode = 0
End Sub

5 réponses

dimitriusai Messages postés 76 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
12 mars 2008 à 10:48
Voici une petite fonction permettant d'intercepter le Keys.Enter du textbox1 et d'y mettre l'action que l'on veu




Private







Sub
Password_KeyDown(

ByVal
sender

As



Object
,

ByVal
e

As
System.Windows.Forms.KeyEventArgs)

Handles


TextBox1.KeyUp






If
e.KeyCode = Keys.Enter


Then

      """""action""""""


   Else

      """""action""""""


   
   End





If

End



Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
12 mars 2008 à 11:24
Il te manque un paramètre (pReference) quand tu appelles ta fonction.
De plus, ça ne sert à rien d'utiliser une variable et de la forcer avec CLng.
KeyCode est déjà un Integer...

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then Call RefArticles (ajouter le paramètre)
End Sub

Tu peux aussi changer le 13 par vbKeyReturn

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013
12 mars 2008 à 12:03
salut!
merci pour vos conseils, mais j'y arrive pas, je comprends pas bien ce que je dois faire...

je vais essayer de voir quoi avec l'aide d'office, je vous tient au courant

encore merci
0
cs_Fabian123 Messages postés 180 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 22 novembre 2013
12 mars 2008 à 13:54
pff... n'y arrive pas...

il ne plante pas, mais il ne m'affiche rien...
0

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

Posez votre question
dimitriusai Messages postés 76 Date d'inscription lundi 6 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
12 mars 2008 à 14:26
Envoie moi ton projet complet par mail : dimitriusai@gmail.com , et spécifies moi ou tu veux que cela fonctionne, et je te le fait directement.

Cordialement
0
Rejoignez-nous