Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

anachorette

XLDnaute Nouveau
Bonjour à tous,

Je voudrais faire s'afficher une image (fichier .BMP) lorsque je sélectionne un chiffre dans un tableau :
- je sélectionne 1 et l'image 1.BMP s'affiche
- je sélectionne 2 et l'image 2.BMP s'affiche
- je sélectionne 3 et l'image 3.BMP s'affiche
Les images se trouvent dans le même dossier que le fichier Excel

1bis et 1 ter font également s'afficher 1.BMP
2 bis et 2 ter font également s'afficher 2.BMP
etc.
Dans tous les cas il n’y aura qu’un seul chiffre sélectionné et une seule image correspondante.
L'image doit s'afficher dans un endroit particulier sur le fichier.

Pouvez-vous m'expliquer comment faire ?

Merci !
 

anachorette

XLDnaute Nouveau
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

Voici deux fichiers en version 2007 et 2003 illustrant ma demande.
 

Pièces jointes

  • Anachorette image sélectionnée.xlsx
    19.1 KB · Affichages: 40
  • Anachorette image sélectionnée V2003.xls
    33.5 KB · Affichages: 39

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

Bonjour anachorette,

Pour les fichiers trop tard ! :( . Un essai dans le fichier joint.

Edit: double-cliquer sur une cellule A3:A11 pour afficher l'image

Le code du module de code de "Feuil1":
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Const Suffixe = ".jpg"
Dim NomImg As String, Rep As String

If Not Intersect(Range("A3:A11"), Target) Is Nothing Then
  Rep = ThisWorkbook.Path
  If Right(Rep, 1) <> "\" Then Rep = Rep & "\"
  NomImg = Rep & Val(Target.Value) & Suffixe
  If Dir(NomImg) = "" Then
    MsgBox "Erreur. Pas de fichier image:  " & vbLf & NomImg
  Else
    ConteneurImage.Picture = LoadPicture(NomImg)
    Cancel = True
  End If
End If
End Sub

Dans votre cas, changer la ligne : Const Suffixe = ".jpg" en Const Suffixe = ".bmp"
 

Pièces jointes

  • anachorette v1.zip
    61.1 KB · Affichages: 54
Dernière édition:

et1000lio

XLDnaute Junior
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

Bonjour Anachorette, bonjour le forum

Tu devrais trouver ton bonheur.... ici :

Formation Excel VBA JB

Index / images / Choix d'une image avec données/Validation / Images internes au classeur.


... et c'est très bien expliqué et je l'ai appliqué à maintes reprises.

Bon courage.
Et1000lio
 

anachorette

XLDnaute Nouveau
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

et1000lio : peux-tu s'il te plait envoyer le lien direct car j'ai beau chercher, je ne trouve pas...

mapomme : cela parait très compliqué car cela n'est pas une bête formule mais du code. Où l'entre-t-on ?

Merci du temps que vous passez à m'aider.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

Re,

Copier le code ne suffira sans doute pas. Il faudra très certainement l'adapter à ton propre fichier. Dans ce cas, il vaut mieux joindre un modèle de ton propre fichier (sans données confidentielles) pour pouvoir rédiger un code répondant à tes besoins comme te l'avait suggéré Robert.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

Bonsoir le fil, bonsoir le forum,

Très similaire à l'idée de macompote, ton fichier modifié avec le code ci-dessous :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim o As Object 'déclare la variable o (Onglet)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim ca As String 'déclare la variable ca (Chemin d'Accès)
Dim num As String 'déclare la variable num (NUMéro image)
Dim nom As String 'déclare la variable nom (NOM image)

Set o = Sheets("Foglio1") 'définit l'onglet o
dl = o.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 2 (=B)
Set pl = o.Range("B3:B" & dl) 'définit la plage pl
If Application.Intersect(Target, pl) Is Nothing Then Exit Sub 'si le double-clic a lieu ailleurs que dans pl, sort de la procédure
Cancel = True 'annule le mode édition lié au double-clic
ca = ThisWorkbook.Path & "\" 'définit le chemin d'accès
num = Split(Target.Value, " ")(0) 'définit le numéro de l'image num
nom = num & ".BMP" 'définit le nom de l'image
'si il y a déjà une image en G5, supprime cette image
If ActiveSheet.Shapes.Count > 0 Then ActiveSheet.Shapes(1).Delete
o.Range("G5").Select 'sélectionne la cellule G5
On Error Resume Next 'gestion des erreurs
o.Pictures.Insert (ca & nom) 'insère l'image (génère une erreur si l'image n'existe pas)
If Err <> 0 Then 'conditionsi une erreur a été générée
    Err = 0 'annule l'erreur
    MsgBox "Cette Image n'existe pas" 'message
End If 'fin de la condition
End Sub
Attention ! pour que ça marche il faut impérativement qu'il y ait un espace entre le numéro et la suite. Par Exemple : 2 bis (ok), 2bis (plantage). 1 ter (ok), 1ter (plantage)...
le fichier :

 

Pièces jointes

  • Anachorette_v01.xls
    43.5 KB · Affichages: 49

et1000lio

XLDnaute Junior
Re : Faire s'afficher une image à partir d'un chiffre sélectionné dans un tableau

Bonjour Anachorette, bonjour le forum

Désolé pour ma réponse tardive mais le weekend est passé par là....

Voici un fichier qui t'aidera peut être.

Code mis dans le gestionnaire de noms
ADRIMAGES "=DECALER(TYPE!$C$3;EQUIV(TRI!$B$4;NOMIMAGE;0)-1;0)"
NOMIMAGE "=TYPE!$B$3:$B$5"

Dans l'onglet TYPE créer la liste avec l'insertion des images correspondantes.
Dans l'onglet TRI pour insérer l'image il faut utiliser l'outil photo, et à l'insertion lui attribuer le code "=ADRIMAGES" et pour le choix créer une liste.

et le tour est joué. Tout est modifiable.
Bon courage
Et1000lio
 

Pièces jointes

  • CHOIX IMAGE.xls
    220.5 KB · Affichages: 70

Discussions similaires

Réponses
1
Affichages
292
Compte Supprimé 979
C