Excel: affichage d'une image [Résolu/Fermé]

Signaler
-
 Max -
Bonjour,

Dans mon classeur excel j'ai,

Sur la feuille1:
Un tableau avec, par lignes, des infos client (un numéro client, nom, prénom, adresse, spécialité...environ 9 colonnes)

Sur la feuille2:
Une fiche client individuelle qui récapitule nom, prénom, adresse, spécialité...
Sur cette feuille, j'accède aux infos individuelles en rentrant le numéro client dans la case B2.

Ce que je souhaite, c'est que sur cette fiche client individuelle, apparaisse la photo (qu'importe le format) du client dans un coin de la page en fonction du numéro sélectionné (J'ai déjà toutes les photos).

Comment faire? Créer une feuille supplémentaire? Comment identifier les photos?...

D'avance merci

Max

1 réponse

Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 juillet 2020
2 990
Bonjour,

Ci joint un exemple acceptant des formats de photos différents (png,jpg....)

Comme il se doit avec de nombreuses photos , il ne faut pas mettre celles dans le m^me classeur mais dans les laisser externes pour ne pas alourdir le classeur

note:
Il faut télécharger et dézipper la pièce jointe et non ouvrir directement

https://www.cjoint.com/?3Chka0LCnen

Tu dis
Bonjour,

Je viens d'essayer le fichier: ça fonctionne plutôt bien. L'ennui c'est que les image s'additionne les unes sur les autres. Si je consultes les fiches 101 puis102, que je reviens sur la 101 et que je regarde la 104, je me retrouve avec un tas de photos empilées. Est il possible de remplacer les photos au fur et à mesur des consultations de fiches afin de n'en avoir qu'une?

Merci
Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 juillet 2020
2 990
Re,

Effectivement ! excuse moi
code rectifié (dans module machin max; le nom de machin max date du 1°jus, donc ne prends pas mal "machin") :o)

Const Ss_dossier As String = "photo_staff" 'nom du sous dossier contenant les images
Const ref_cell As String = "$A$1" 'emplacement de la photo
' Michel_M Avril 2012_modifié Mars 2013( suppression de l'ancienne photo)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim design As String, cellule As Range
Dim image As Object
If Not Intersect(Target, Range(ref_cell)) Is Nothing And Target.Count = 1 Then
     'nettoyage
     Range("B1") = ""
     On Error Resume Next
     ActiveSheet.Shapes("photo").Delete
     On Error GoTo 0
     
     design = ThisWorkbook.Path & "\" & Ss_dossier & "\" & Target
     'prend en compte le format de la photo
     If Dir(design & ".png") <> "" Then design = design & ".png"
     If Dir(design & ".jpg") <> "" Then design = design & ".jpg"
     If Dir(design & ".jpeg") <> "" Then design = design & ".jpeg"
     If Dir(design & ".gif") <> "" Then design = design & ".gif"
          
      'mémorise la photo à afficher
      Set cellule = ActiveSheet.Range(ref_cell).Offset(0, 1)
     On Error GoTo absence 'photo non disponible
     Set image = ActiveSheet.Pictures.Insert(design)
     'insere la photo dans la fiche
     With image.ShapeRange
          .Top = cellule.Top + 2
          .Left = cellule.Left + 1
          .Name = "photo"
         .Height = cellule.Height - 3
          .Width = cellule.Width - 2
          .LockAspectRatio = msoFalse 'garde les proportions de l'original
     End With
End If
     Exit Sub
     
absence:
    cellule = "photo non disponible"
     
End Sub
Re,

C'est bon ça marche, magnifique, formidable! Un succès!!

Merci "bidule" ;)