Impossible de lire la propriété list [Résolu]

cs_Fabian123 180 Messages postés vendredi 18 janvier 2008Date d'inscription 22 novembre 2013 Dernière intervention - 22 mars 2008 à 15:49 - Dernière réponse : cs_Fabian123 180 Messages postés vendredi 18 janvier 2008Date d'inscription 22 novembre 2013 Dernière intervention
- 22 mars 2008 à 18:17
Bonjour à toutes et tous,

voilà mon souci :

j'ai une listbox, un textbox et une imagebox et un commandbutton dans un formulaire
dans une feuille excel, j'ai une colonne avec des références, une avec des articles et une avec des prix

je rentre une référence dans la textboxe, appuye sur 'enter' et l'article et son prix correspondant s'affiche dans la listbox et une image de l'article s'affiche dans une image box. lorsque je clique sur le commandbutton, la listbox se vide et son contenu est transféré dans une feuille excel... jusque là tout va bien!
Seulement voilà, lorsque je me replace dans la textbox pour encoder de nouveau des articles dans la listbox, il plante dès que je commance à encoder ma référence.
l'erreur est la suivante (et je suis presque certain que je ne l'avait pas auparavant...) :

' erreur d'execution 381 : Impossible de lire la proriété List. Index de table de propriétés non valide'

Voici mon code (j'ai surligné en rouge la ligne qui pose probleme...)

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
    
    ListBox2.AddItem
    ListBox2.List(ListBox2.ListCount - 1, 0) = Sheets("Listing des Articles").Range("C" & Recherche.Row)
    ListBox2.List(ListBox2.ListCount - 1, 1) = Sheets("Listing des Articles").Range("D" & Recherche.Row)
    ListBox2.ListIndex = ListBox2.ListCount - 1
    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
    TextBox3.Value = vbNullString
    TextBox3.SetFocus 'Donne le focus a la textbox3
    End If
Call CalculSomme
    With ListBox2
    If Dir$("D:\Documents and Settings\BeumierForiez\Bureau\weigthwatchers\Images" & .List(.ListIndex, 0) & ".jpg") = "" Then
         Set Image1.Picture = LoadPicture("D:\Documents and Settings\BeumierForiez\Bureau\weigthwatchers\Images\default.jpg")
    Else
        Set Image1.Picture = LoadPicture("D:\Documents and Settings\BeumierForiez\Bureau\weigthwatchers\Images" & .List(.ListIndex, 0) & ".jpg")
    End If
    End With
End Sub

Merci d'avance pour votre aide... parceque jusqu'a présent cela fonctionné et j'ai pas l'impression d'avaoir changé quelque chose!
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 22 mars 2008 à 16:24
3
Merci
Tu pourrais vérifier si .ListIndex = -1
Si c'est le cas, tu passes tout droit et ne fait rien.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_MPi
Meilleure réponse
cs_Fabian123 180 Messages postés vendredi 18 janvier 2008Date d'inscription 22 novembre 2013 Dernière intervention - 22 mars 2008 à 16:35
3
Merci
Voilà ce que j'ai mis et ça n'a plus l'air de planter! Merci!!

If ListBox2.ListIndex <> -1 Then (ligne que j'ai rajoutée)
    With ListBox2
    If Dir$("D:\Documents and Settings\BeumierForiez\Bureau\weigthwatchers\Images" & .List(.ListIndex, 0) & ".jpg") = "" Then
         Set Image1.Picture = LoadPicture("D:\Documents and Settings\BeumierForiez\Bureau\weigthwatchers\Images\default.jpg")
    Else
        Set Image1.Picture = LoadPicture("D:\Documents and Settings\BeumierForiez\Bureau\weigthwatchers\Images" & .List(.ListIndex, 0) & ".jpg")
    End If
    End With
End If

Merci cs_Fabian123 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_Fabian123
Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 22 mars 2008 à 17:05
3
Merci
Salut
Vérifie aussi que le texte qui sert de nom de fichier JPG soit compatible avec un nom de fichier (pas de ?, /, \ ...)
Voir http://www.vbfrance.com/codes/SAVOIR-SI-NOM-FICHIER-EST-VALIDE-NOM-WINDOWS_36051.aspx

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de cs_Jack
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 22 mars 2008 à 16:13
0
Merci
L'erreur survient probablement lorsqu'aucun item n'est sélectionné dans la listbox ou encore que la listbox est vide.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
cs_Fabian123 180 Messages postés vendredi 18 janvier 2008Date d'inscription 22 novembre 2013 Dernière intervention - 22 mars 2008 à 16:17
0
Merci
en effet, dans mon bouton de validation sur lequel je clique pour valider la vente, je vide ma listbox afin que l'utilisateur puisse passer à la vente suivante
j'ai donc mis 'Listbox2.Clear')
Si j'efface cette ligne, je n'ai plus de probleme, mais ça ne m'arrange pas!

est-ce que tu crois qu'il y a un autre moyen de faire, pour que la listbox soit vide et que ca ne plante pas...
Commenter la réponse de cs_Fabian123
cs_Fabian123 180 Messages postés vendredi 18 janvier 2008Date d'inscription 22 novembre 2013 Dernière intervention - 22 mars 2008 à 18:17
0
Merci
salut jack,

j'avais déjà eu quelques soucis par rapport à mes noms de fichiers jpg qui n'étaient pas exactement les mêmes que ceux de ma liste (il y avai des 'espaces' en trop!)
donc, de ce côté là maintenant tout est ok!

Merci!
Commenter la réponse de cs_Fabian123

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.