Images et label

P

Pias

Guest
Bonsoir le Forum
Deux Feuil, une avec des images dans la colonne A, l’autre avec des valeurs.

Dans une UserForm avec 2 Labels, Je souhaiterais obtenir dans le Label2 (images de la feuil) une image en fonction de la valeur du Label1 (valeurs de l’autre Feuil).
Je envois un fichier joint pour une meilleure compréhension du problème
Merci d’avance.

Amicalement

...On se lasse de tout sauf d’apprendre !..
 

Pièces jointes

  • images.zip
    16.5 KB · Affichages: 102
M

michel

Guest
Re: Images dans classeur : exemple ImageList

bonjour Pias

je ne suis pas sur d'avoir bien compris , mais au lieu d'utiliser des labels , j'ai opté pour une ImageList dans l'USF , qui va permettre de stocker les images , plutot que les avoir dans la feuille Excel
( attention avoir les images dans le classeur augmente considerablement sa taille en ko )

pour ajouter ou changer les images

dans les propriétés de l'ImageList :
tu sélectionnes "Personnalisé"
puis l'onglet "image"
cliques sur le bouton "inserer images"
et choisis tes icônes ou images


j'espere que cela pourra t'aider
pour l'autre projet dont nous avons parlé l'autre jour ( la gestion des images ) je n'ai pas de solution simple pour l'instant


bonne journée
MichelXld
 

Pièces jointes

  • imageList.zip
    47.9 KB · Affichages: 434
Dernière modification par un modérateur:
P

Pias

Guest
Bonjour Michel et le Forum

C’est super ça fonctionne.
Merci beaucoup.

Est-ce qu’il est possible de remplacer le ComboBox1 par la valeur du Label1 ?

Je me explique les valeurs du Label1 varient car ils sont égal aux valeurs d’une Feuil (Label1.Caption = Sheets("base1").Range("A2").Value).

Dans ce cas en fonction de la valeur du Label il aura une image différente,
Si quelqu’un peux trouver la solution ça serais sympa.

Quel que chose comme ça !

Private Sub Label11_Change()
Me.Image1.Picture = ImageList1.ListImages(Label1.ListIndex + 1).Picture
End Sub

Private Sub UserForm_Initialize()
Dim i As Byte
For i = 2 To Feuil1.Range("A65536").End(xlUp).Row
Label1.AddItem Feuil1.Cells(i, 1)
Next i

End Sub

Mais évidement ça fonctionne pas.
Merci d’avance.

Amicalement

...On se lasse de tout sauf d’apprendre !..
 
M

michel

Guest
bonsoir Pias

il n'y a pas d'evenement "Change" pour les Label
Label1.ListIndex , n'est pas possible non plus


dans le premier exemple , l'affichage etait synchronisé entre les index de la comboBox et de l'ImageList : ce qui ne peut pas fonctionner avec un Label puisqu'il s'git d'un simple texte
une solution pourrait consister à attribuer pour chaque element de l'ImageList , une clé ( l'element "Key" dans les proprietes "Personnalisé" de l'ImageList) qui correspond au texte du Label qui doit déclencher l'affichage

dans le champs "Key" de chaque image tu saisis donc le texte équivalent qui va s'afficher dans le label


ce qui donnerait ensuite dans la macro:


Label1.Caption = Sheets("base1").Range("A2").Value
Dim j As Byte
For j = 1 To ImageList1.ListImages.Count
If ImageList1.ListImages(j).Key = Label1 Then
Me.Image1.Picture = ImageList1.ListImages(j).Picture
Exit For
End If
Next j



bonne soiree
MichelXld
 
P

Pias

Guest
Bonsoir, Michel et le Forum

J’ai attribuer pour chaque élément de l'ImageList , une clé de qui correspond au texte du Label 6 qui doit déclencher l'affichage

J’i ajouté la macro:

Label6.Caption = Sheets("base").Range("A2").Value
Dim j As Byte
For j = 1 To ImageList1.ListImages.Count
If ImageList1.ListImages(j).Key = Label6 Then
Me.Image1.Picture = ImageList1.ListImages(j).Picture
Exit For
End If
Next j

Ça fonctionne parfaitement.
Merci


Mais il faut que l’image change en fonction de la valeur de Label6.
Comment faire pour récupérer la valeur de ce Label ?
Il y a certainement une solution!

Avec mes connaissances en Vba j’ai tous essayer mais sans sucées.

Je envoie la pièce joint pour une meilleur compréhension

Merci d'avance
Pias
 

Pièces jointes

  • base_images.zip
    35.5 KB · Affichages: 110
Dernière modification par un modérateur:

Discussions similaires

Réponses
1
Affichages
269
Compte Supprimé 979
C