Excel: affichage d'une image

Résolu/Fermé
Max - 7 mars 2013 à 09:09
 Max - 7 mars 2013 à 14:06
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
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 mars 2013 à 10:01
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
0
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
7 mars 2013 à 12:21
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
0
Re,

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

Merci "bidule" ;)
0