Imagebox et touche 'enter'? [Résolu]

Signaler
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013
-
Bonjour à toutes et tous,

voilà, j'ai un formulaire dans lequel j'ai placé un textbox, une listbox et une image box.

lorsque j'entre une reference dans la textbox et que je clique sur enter, l'article correspondant à la référence s'affche dans la listbox.
Je souhaiterais, en plus, qu'au moment ou l'utilisateur appuye sur 'enter', que l'image du produit s'affiche egalement dans l'image box.
je vous laisse mon code ci-dessous, mais ça ne marche pas, je pense que le probleme vient du fait que je la charge à partir de la listbox et que cette dernière est encore vide au moment ou j'appuie sur 'enter'...
Quelqu'un à une idée de la façon dont je pourrais procéder pour que cela fonctionne?

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
   
    If KeyCode = vbKeyReturn Then
Dim Recherche As Range
Set Recherche = Sheets("Listing des Articles").Columns("A").Find(CLng(TextBox3), LookIn:=xlValues, LookAt:=xlWhole)
If Not Recherche Is Nothing Then
ListBox1.AddItem
    ListBox1.List(ListBox1.ListCount - 1, 0) = Sheets("Listing des Articles").Range("C" & Recherche.Row)
    ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Listing des Articles").Range("D" & Recherche.Row)
    Label4.Caption = Sheets("Listing des Articles").Range("D" & Recherche.Row)
    Label16.Caption = Sheets("Listing des Articles").Range("C" & Recherche.Row)
Else
    MsgBox "Le code n'a pas été trouvé, veuillez introduire le bon code"
End If
With ListBox1
    If Dir$("D:\Images" & .List(.ListIndex, 0) & ".jpg") = "" Then
         Set Image1.Picture = LoadPicture("D:\Images\default.jpg")
    Else
        Set Image1.Picture = LoadPicture("D:\Images" & .List(.ListIndex, 0) & ".jpg")
    End If
    End With
End Sub

5 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,
Aller on va mettre un peu de couleur

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
 
   If KeyCode = vbKeyReturn Then
       Dim Recherche As Range
       Set Recherche = Sheets("Listing des Articles").Columns("A").Find(CLng(TextBox3), LookIn:=xlValues, LookAt:=xlWhole)
       If Not Recherche Is Nothing Then
           ListBox1.AddItem
           ListBox1.List(ListBox1.ListCount - 1, 0) = Sheets("Listing des Articles").Range("C" & Recherche.Row)
           ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Listing des Articles").Range("D" & Recherche.Row)
           Label4.Caption = Sheets("Listing des Articles").Range("D" & Recherche.Row)
           Label16.Caption = Sheets("Listing des Articles").Range("C" & Recherche.Row)
       Else
           MsgBox "Le code n'a pas été trouvé, veuillez introduire le bon code"
       End If
       With ListBox1
           If Dir$("D:\Images\" & .List(.ListIndex, 0) & ".jpg") = "" Then
               Set Image1.Picture = LoadPicture("D:\Images\default.jpg")
           Else
               Set Image1.Picture = LoadPicture("D:\Images\" & .List(.ListIndex, 0) & ".jpg")
           End If
       End With
   End If
End Sub , ----
[code.aspx?ID=41455 By Renfield]

POur ce qui est de ton problème,
- Que vaut .List(.ListIndex, 0) au moment du chargement des images?
- N'y a t il pas des espace en trop (qui viendrait des cellules)
- Ca ne marche pas ne veut rien pour nous, il faut expliquer: Erreur ou simplement rien ne se passe
- Si erreur quelle est elle.
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
pas d'element séléctionné dans ta ListBox...

après

ListBox1.AddItem
ListBox1.List(ListBox1.ListCount - 1, 0) = Sheets("Listing des Articles").Range("C" & Recherche.Row)
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("Listing des Articles").Range("D" & Recherche.Row)
ajoutes:
ListBox1.ListIndex = ListBox1.ListCount -1
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

salut!

d'abord, merci Julien pour avoir rendu le code plus clair avec des couleurs!

concernant le probleme, en fait, il ne plante pas, mais dès que je commence à encoder la référence dans la textbox il affiche l'image 'default.jpg' et il reste sur cette image quelle que soit l'article encodé.

J'ai bien vérifié concernant les espaces dans les cellules qui pourraient produire une erreur, mais non, les noms des cellules correspondent bien au noms des images.

Normalement, il devrait aficher l'image une fois que l'article est dans la listbox, hors ici il m'affiche l'image dès que je commence à encoder la référence...
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Re,
Alors c'est que ton code doit être un peu différent du mien
Vérifie donc bien que cette partie

With ListBox1
   If Dir$("D:\Images\" & .List(.ListIndex, 0) & ".jpg") = "" Then
       Set Image1.Picture = LoadPicture("D:\Images\default.jpg")
   Else
       Set Image1.Picture = LoadPicture("D:\Images\" & .List(.ListIndex, 0) & ".jpg")
   End If
End With
, ----
[code.aspx?ID=41455 By Renfield]

Soit bien contenue dans la condition If KeyCode = vbKeyReturn Then
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
180
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
22 novembre 2013

Salut Renfield,

j'ai essayé ça fonctionne!!

Merci beaucoup à tous les deux pour votre aide!