Excel: affichage d'une image

Résolu
Max -  
 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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. Max
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. Max
       
      Re,

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

      Merci "bidule" ;)
      0