cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013
-
14 mars 2008 à 10:34
cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013
-
14 mars 2008 à 14:40
Bonjour à toutes et tous!
mon projet commence à prendre forme, merci à tous pour l'aide que vous m'apportez!
voici mon problème de ce jour!
j'ai donc une listbox dans un userform, chargée à partir d'une feuille excel. Cette listbox contient deux colonnes, une pour le nom de l'article et l'autre pour son prix
sur le meme userform j'ai placé l'outil 'image'.
ce que je souhaiterais faire, c'est, lorsqu'une ligne est sélectionnée dans la listbox, il s'affiche automatiquement l'image du produit concerné.
dois-je charger chaque image sur mon userform et les mettre en non visibles (cela va rendre le fichier très lourd, il y a une soixantaine d'articles, non? est-ce que cela ne va pas ralentir le programme?) est-il possible de procéder autrement?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 mars 2008 à 13:53
Private Sub ListBox1_Click()
With ListBox1
Set Image1.Picture = LoadPicture("C:\ProjetBoutique\Images" & .List(.ListIndex, 1) & ".jpg")
End With
End Sub
cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013 14 mars 2008 à 11:28
ça marche nickel!
mais le probleme c'est que je souhaiterais lier une image par produit, or ici, il me charge la meme image quelque soit l'article... dois-je me servir de "listindex" pour attribuer l'image en fonction de l'article séléctionné?
exemple:
article 1 est lié à image1.jpg
article 2 est lié à image2.jpg et ainsi de suite...
je souhaiterais lorsque article deux est sélectionné, que ce soit image2 qui apparaisse (et idem pour article 1!)
cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013 14 mars 2008 à 13:29
merci pour ton aide,
alors, concernant les images, elles se trouvent dans un dossier sur c (c:\ProjetBoutique\Images)
chaque image est nommée en fonction de l'article qu'elle représente (ex: choclat.jpg)
Voilà pour les images.
Pour le petit progr:
j'ai une feuille excel avec trois colonnes:
col A = catégorie de produit (alimentaire, non alimentaire et livres)
Col B = l'article (chocolat...)
Col C = Le prix de l'article.
Dans un userform, j'ai une listbox de deux colonnes et trois options buttons.
Chaque bouton est renommé comme les catégorie
lorsque je clique sur un bouton, il affiche dans la listbox les articles et leurs prix correspondant à la catégorie sélectionnée avec le bouton.
je souhaiterais donc, lorsquon sélectionne un article dans la listbox que l'image lui correspondant s'affiche sur l'userform...
Voilà, j'espère avoir été limpide dans mes explications!
Et encore merci pour ton aide!
voici le code qui permet de sélectionner une catégorie et d'en afficher le contenu:
Private Function GetListCategories() As String()
Dim ltStr() As String
ReDim ltStr(-1 To -1)
Dim i As Long
Dim j As Long
Dim lOK As Boolean
Dim lStr As String
i = 0
Do While Sheets("Listing des Articles").Range("G2").Offset(i, 0).value <> ""
lOK = True
lStr = Sheets("Listing des Articles").Range("G2").Offset(i, 0).value
'Recherche si la catégorie est connue
For j = 0 To UBound(ltStr)
If lStr = ltStr(j) Then
lOK = False
Exit For
End If
Next j
'Si inconnue, on l'ajoute
If lOK Then
If UBound(ltStr) >= 0 Then
ReDim Preserve ltStr(0 To UBound(ltStr) + 1)
Else
ReDim ltStr(0 To 0)
End If
ltStr(UBound(ltStr)) = lStr
End If
i = i + 1
Loop
GetListCategories = ltStr
End Function
'Ensuite pour remplir ta listbox :
Private Sub RemplLstBx(ByVal pCategorie As String)
Dim i As Long
ListBox1.Clear
i = 0
Do While Sheets("Listing des Articles").Range("G2").Offset(i, 0).value <> ""
If Sheets("Listing des Articles").Range("G2").Offset(i, 0).value = pCategorie Then
ListBox1.AddItem
ListBox1.List(j, 0) = Sheets("Listing des Articles").Range("H2").Offset(i, 0).value
ListBox1.List(j, 1) = Format(CStr(Sheets("Listing des Articles").Range("I2").Offset(i, 0).value), "0.00")
j = j + 1
End If
i = i + 1
Loop
End Sub
Private Sub OptionButton_Alimentaire_Click()
Call RemplLstBx(OptionButton_Alimentaire.Caption)
End Sub
Private Sub OptionButton_NonAlimentaire_Click()
Call RemplLstBx(OptionButton_NonAlimentaire.Caption)
End Sub
Private Sub OptionButton_Livres_Click()
Call RemplLstBx(OptionButton_Livres.Caption)
cs_Fabian123
Messages postés180Date d'inscriptionvendredi 18 janvier 2008StatutMembreDernière intervention22 novembre 2013 14 mars 2008 à 14:22
merci!
ça ne fonctionnait pas parceque j'avais laissé un espace entre le nom de l'image et le ".jpg" -> le nom n'était pas identique a celui de la feuille excel!
tiens, si il n'y a pas d'image pour un article, ça plante, y a t'il moyen de ne pas attribuer d images à un article sans que ça plante?