Liste déroulante avec images

Bonjour,

Est ce que dans Excel je peux avoir une liste déroulante avec des images et pas du texte?

Agrimaman

Bonsoir Agrimaman,

Oui, cela va dépendre de différents paramètres.

D'abord, as tu avec ta version Excel 2016, dans le menu général Formules, Plus de fonctions, Web; la formule Image?

Poste avec un fichier avec quelques images (n'importe lesquelles), afin de montrer l'exemple. Même si tu n'as pas la formule plus haut.

Bonjour,

En pièce jointe un fichier excel en exemple.

Dans l'onglet "liste", il y a l'image à associé à chaque animal = les images qui doivent être dans la liste déroulante.

Dans l'onglet "Animaux de agrimaman" il y a mes animaux de compagnie. En colonne B je souhaite avoir ma liste déroulante d'images d'animaux pour choisir moi même l'image qui ira à côté du nom de mon animal de compagnie.

Est ce possible ???

Merci d'avance

Agrimaman

Bonsoir Agrimaman,

Ci-dessous un exemple réalisé avec les images présentes.

Débloquer le fichier par clic droit puis propriétés. Et clic sur case à cocher.

Accepter l'utilisation de macros pour que la liste déroulante fonctionne.

Voir si ce principe répond à ta demande.

Bon soir …

Un autre point de vue (images déplacées dans la feuille de demande et renommées)

35vers-image.xlsm (77.54 Ko)

Bonjour,

Merci pour vos propositions.

Je regarde et je vous redis

Agrimaman

Bonjour,

X Cellus, quand je cliques sur la flèche, cette dernière est affectée à une macro "AppListes_Cliquer" que je ne retrouve pas dans Developpeur.

Pourquoi?

Agrimamant

Bonjour Agrimaman,

Je te réponds de mon phone. Mais il est possible que sur ce fichier. La macro doit être sur le code de la feuille. Et non dans un module.

Attention, dans l'éditeur VBA il faut faire clic droit sur le nom de la feuille concernée par les images. Afin de faire apparaître les lignes macro.

Je regarderais cela en soirée.

Re,

Autre question qui attendra ce soir

Quelle différence entre "Label1" et "AppListe"?

Je ne me suis jamais aventurée dans ce genre de codage dans VBA donc je tâtonne un peu..

Merci d'avance

Agrimaman

A nouveau,

Quelle différence entre "Label1" et "AppListe"?

AppelListe est une forme (Shape) composée d'un carré et d'un triangle central inversé.

image

En cliquant sur celle-ci on active la macro ci-dessous. Elle se trouve dans le Module 1. Cela permet de rendre visible deux autres formes:

La forme AppPhoto qui est l'appareil photo Excel (nommée aussi caméra).

Sub AppelPhotos()
ActiveSheet.Shapes("AppPhoto").Visible = True
ActiveSheet.Shapes("Label1").Visible = True
End Sub
image

Par celui-ci on peut cibler une partie de la feuille Liste qui va de la cellule B2 à B5. Soit les 4 images présentes sur cette feuille, pour l'exemple.

Un contrôle Activex Label1 vient se placer par dessus la forme AppPhoto afin d'exploiter le clic souris sur une des images à choisir. Voir macro ci-dessous qui se trouve dans la feuille Liste.

Private Sub Label1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' Img1 05 à 55, Img2 63 à 113, Img3 123 à 173, Img4 185 à 235
Pos = WorksheetFunction.Match(Int(Y), Sheets("Liste").Range("C1:C5")) + 1
'Inscription du nom
Range("A" & Lig) = Sheets("Liste").Range("A" & Pos)
Range("C" & Lig).Select
ActiveSheet.Shapes("Connect").Select
Call Cache
End Sub

Le but de cette macro est de connaître la position (Pos) du clic gauche. Selon la colonne C (cellules C1 à C5). Voir le 1ier commentaire qui précise les images ciblées (Img1 à Img4). Ainsi on peut renseigner le type de l'animal dans une des cellules de la colonne A de la 2ième feuille.

Dans les deux dernières lignes de code -> Activesheet.shapes("Connect") on sélectionne une autre forme afin de libérer l'appareil photo et le label. Puis on les cache pour permettre ou non une nouveau choix (Appel de la liste par AppelListe).

Sub Cache()
'Invisibilité des formes
ActiveSheet.Shapes("AppPhoto").Visible = False
ActiveSheet.Shapes("Label1").Visible = False
End Sub

Enfin la macro ci-dessous sert à connaitre quelle ligne de la feuille 2 est sélectionnée afin de faire démarrer la liste à afficher sur la bonne ligne.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Lig = Target.Row
ActiveSheet.Shapes("AppPhoto").Visible = False
ActiveSheet.Shapes("Label1").Visible = False
'Cellules d'affichage de la liste
If Not Intersect(Target, Range("B2:B5")) Is Nothing Then
ActiveSheet.Shapes("AppListe").Left = Target.Offset(0, 1).Left
ActiveSheet.Shapes("AppListe").Top = Target.Offset(0, 1).Top + 55
ActiveSheet.Shapes("AppListe").Visible = True
'Position et affichage des formes
ActiveSheet.Shapes("AppPhoto").Top = Target.Top
ActiveSheet.Shapes("Label1").Top = Target.Top
End If
End Sub

Si tu rajoutes une photo et un type d'animal en feuille Liste. Par exemple en B6, il faudra modifier C1:C5 par C1:C6, B2:B5 par B2:B6. Puis indiquer en A6 et C6 de la feuille Liste respectivement le type (par exemple: Coq et la valeur 293).

Bonjour X Cellus,

J'ai tenté de reprendre ton système mais je n'y arrive pas et c'est mon manque d'expérience sur VBA qui en est la cause.

En pièce jointe je te renvoie un autre fichier mais qui est (maintenant) le format exact de ce que j'aurais besoin.

La principe:

- j'ai un onglet "tableau" dans lequel je souhaite indiqué pour chacune des personnes si l'enfant 1 2 et 3 était un garçon ou une fille, mais je souhaite que l'indication soit en image et non pas écrite.

- dans l'onglet enfant, j'ai mis mes deux images correspondantes.

Est ce que dans l'onglet "Tableau", je peux avoir pour les colonnes Enfant 1, Enfant 2 et Enfant 3 une liste déroulante avec les images et quand je cliques sur l'image elle se met dans la case?

Tu verras il y a un semblant de code mais je n'arrive pas à avoir mon résultat attendu.

Peux -tu m'aider?

Agrimaman

21agrimaman.zip (553.41 Ko)
Rechercher des sujets similaires à "liste deroulante images"