Afficher photos selon sélection listbox Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Licaon
Membre fidèle
Membre fidèle
Messages : 152
Inscrit le : 4 novembre 2010
Version d'Excel : 2007 FR

Message par Licaon » 22 septembre 2018, 09:10

Bonjour les amis du Forum.

Pour mon projet, à partir d'un listbox, par un clic sur une ligne, j'aimerai afficher l'image qui y est associée.
Je ne dois pas avoir les bons termes de recherche pour m'aider, où alors les codes glanés ici et là, ne me sont pas familier et trop complexe avec le code déjà présent dans mon classeur de projet de travail.

Par la suite, j'aimerai par double clic sur le contrôle image, ouvrir et alimenter l'userform2 par l'image affichée et les informations de la ligne sélectionnée en listbox.

Un petit fichier vaut mieux qu'un grand bla bla ...
photo listbox.zip
(31.24 Kio) Téléchargé 18 fois
Merci de l'aide apportée.

Licaon
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 4'326
Appréciations reçues : 508
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 22 septembre 2018, 09:53

Bonjour Licaon le forum
ton dossier en retour, tu testes et tu me redis
a+
Papou :)
Licaon photo listbox.zip
(36.45 Kio) Téléchargé 33 fois
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
Avatar du membre
leakim
Membre impliqué
Membre impliqué
Messages : 1'809
Appréciations reçues : 13
Inscrit le : 11 décembre 2012
Version d'Excel : 2010 - 2016 FR
Téléchargements : Mes applications

Message par leakim » 22 septembre 2018, 10:07

Salut,
Je te propose mon retour,

A me redire,

le code est à adapter à ton environnement
Private Sub ListBox1_Click()
Dim chemin As String

On Error Resume Next

'on definie une variable en taille, le dim au dessus, et sa valeur, la ligne en dessous
chemin = Me.ListBox1.List(ListBox1.ListIndex, 2) 'donc chemin = valeur sélectionnée dans listbox
'pour afficher l'image, nous avons la ligne suivante
UserForm1.Image1.Picture = LoadPicture("C:\Users\Propriétaire\Desktop\photo listbox\Photos\" & chemin & ".JPG")
'ou nous retrouvons le repertoire par defaut des images et notre variable

For i = 1 To 3 'sur 3 colonnes
    Me("textbox" & i).Value = Me.ListBox1.List(ListBox1.ListIndex, i - 1)
Next i

End Sub
Surtout la ligne
UserForm1.Image1.Picture = LoadPicture("C:\Users\Propriétaire\Desktop\photo listbox\Photos\" & chemin & ".JPG")

Leakim

Salut Paritec ta proposition est bien plus pro que la mien :appl:
photo listboxV2.xlsm
(28.66 Kio) Téléchargé 33 fois
On apprend par des essais/erreurs. L'erreur, serait de ne pas en faire... :noel:
Image
Avatar du membre
Licaon
Membre fidèle
Membre fidèle
Messages : 152
Inscrit le : 4 novembre 2010
Version d'Excel : 2007 FR

Message par Licaon » 22 septembre 2018, 18:54

Bonjour Papou, Leakim et le Forum.

Merci à tout les deux pour vos réponses.
Je retiens la proposition de Papou, plus facile à comprendre pour mon niveau.
Un bug apparaît lorsque l'image n'est pas présente.J'ai bien compris que pour y remédier, on pouvait charger une image donnée par défaut , mais je n'arrive pas à les adapter sur ce code.
Le nom de l'image est "Defaut".

Encore un petit coup de pouce ?

Licaon.
Avatar du membre
leakim
Membre impliqué
Membre impliqué
Messages : 1'809
Appréciations reçues : 13
Inscrit le : 11 décembre 2012
Version d'Excel : 2010 - 2016 FR
Téléchargements : Mes applications

Message par leakim » 22 septembre 2018, 19:18

Salut,
Juste pour la gestion des erreur tu poses dans ton début de code
On Error Resume Next
Leakim
On apprend par des essais/erreurs. L'erreur, serait de ne pas en faire... :noel:
Image
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 4'326
Appréciations reçues : 508
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 22 septembre 2018, 19:30

Bonsoir Licaon leakim le forum
Ta solution Leakim est bonne à mettre à la poubelle!!!! Et en plus en aucun cas elle ne va permettre d'afficher la photo défaut comme le demande Licaon !!!
Si tu gères du vba de la sorte tu ne vas pas aller loin!!!
On error Resume next, est à utiliser quand on ne peut pas faire autrement, car botter en touche c'est facile, mais cela ne règle rien!!!
Licaon ton fichier en retour
a+
Papou :)
Licaon photo listbox.zip
(42.72 Kio) Téléchargé 67 fois
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
Avatar du membre
leakim
Membre impliqué
Membre impliqué
Messages : 1'809
Appréciations reçues : 13
Inscrit le : 11 décembre 2012
Version d'Excel : 2010 - 2016 FR
Téléchargements : Mes applications

Message par leakim » 23 septembre 2018, 09:29

Salut,
J'avoue avoir répondu trop vite :...:

Bonne suite à vous,
Cordialement,

Leakim
On apprend par des essais/erreurs. L'erreur, serait de ne pas en faire... :noel:
Image
Avatar du membre
Licaon
Membre fidèle
Membre fidèle
Messages : 152
Inscrit le : 4 novembre 2010
Version d'Excel : 2007 FR

Message par Licaon » 1 octobre 2018, 22:49

Bonsoir Paritec, leakim, le Forum.
Désolé pour ce post différé, le professionnel a pris le dessus.

La solution de Paritec est ce que je désirais.

Merci de votre implication pour solutionner ce projet.

A bientôt sur le forum.

Licaon.
b
betabong
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 28 mai 2019
Version d'Excel : 2016
Version de Calc : 6.1.4FR

Message par betabong » 21 avril 2020, 19:34

paritec a écrit :
22 septembre 2018, 19:30
Bonsoir Licaon leakim le forum
Ta solution Leakim est bonne à mettre à la poubelle!!!! Et en plus en aucun cas elle ne va permettre d'afficher la photo défaut comme le demande Licaon !!!
Si tu gères du vba de la sorte tu ne vas pas aller loin!!!
On error Resume next, est à utiliser quand on ne peut pas faire autrement, car botter en touche c'est facile, mais cela ne règle rien!!!
Licaon ton fichier en retour
a+
Papou :)
Bonjour et merci pour ce sujet qui m'aide.

Cependant étant un novice je n'arrive pas adapter ce code à mon projet sans sauter l'erreur et afficher l'image par défaut.

Mon fichier se trouve dans M:\TP. Les images dans M:\Tp\RAD.
J'utilise le numéro unique qui se trouve à la 2 ème colonne.
Quand je choisi ma ligne dans ma listbox1 l'image est bien affiché.

Mon problème c'est quand il n'existe pas un. jpg qui correspond à une donnée qui se trouve à la 2 ème colonne de mon row. Il n'y a aucune image ou j'ai juste la dernière image que j'ai visualisé.

Je précise que c'est le seul code que j'ai pris et modifier et que j'ai tout simplement coller entre les deux lignes de ma listebox1. J'ai l'impression que ça coince au niveau "ThisWorkbook.Path & "\RAD\Défaut.jpg"

Merci pour votre aide !
Error Resume Next
    If ListBox1.ListIndex = -1 Then Exit Sub
    UserForm_R.Image2.Picture = LoadPicture("M:\Tp\RAD\" & ListBox1.List(ListBox1.ListIndex, 1) & ".JPG")
    If Dir(adr, vbDirectory) = "" Then
        adr = ThisWorkbook.Path & "\RAD\Défaut.jpg"
    End If
    Image2.Picture = LoadPicture(adr)
    On Error GoTo 0
Avatar du membre
paritec
Passionné d'Excel
Passionné d'Excel
Messages : 4'326
Appréciations reçues : 508
Inscrit le : 7 juin 2011
Version d'Excel : W10 - 2003 FR - 2010 FR

Message par paritec » 6 mai 2020, 11:32

Bonjour Betabong le forum
bah oui à mon avis dans ton fichier M:\Tp\RAD. tu n'as pas de fichier vierge défaut.jpg
et aussi ton code n'est pas bon, si tu mets toutes tes photos dans un dossier nommé Photos dans le même dossier que ton fichier d
dans le quel tu as ton userform, tu auras le résultat voulu.
il faut cependant créer une image vierge défaut.jpg et la mettre aussi dans le dossier Photos
ou ne pas charger de photos si l'adresse n'existe pas, voilà le code pour le première proposition en fonction de ta demande de charger l'image par défaut
a+
Papou :)
Private Sub L1_Click()
    If L1.ListIndex = -1 Then Exit Sub
    adr = ThisWorkbook.Path & "\Photos\" & L1.List(L1.ListIndex, 2) & ".jpg"
    If Dir(adr, vbDirectory) = "" Then
        adr = ThisWorkbook.Path & "\Photos\Défaut.jpg"
    End If
    Image1.Picture = LoadPicture(adr)
End Sub
Des bonnes explications et des petits fichiers représentatifs vont nous aider à vous aider !!!!
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message