XL 2010 Récup photo dans dossier

safranien

XLDnaute Occasionnel
Bonjour à tous

j'utilise le code ci-dessous trouvé sur un post pour aller récupérer une photo dans un dossier logé au même endroit que mon excel et portant le même nom que celui défini en cellule A1 (nommée Site) étant une liste déroulante :

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("Site").Value <> "" Then
X_Feuil27.Shapes("Photo").Fill.UserPicture ThisWorkbook.Path & "\PDG\" & Range("Site").Value & ".JPG"
Else
ActiveSheet.Shapes("Photo").Fill.Solid
ActiveSheet.Shapes("Photo").Fill.ForeColor.SchemeColor = 65
End If
End Sub

Comment dire que si on ne trouve pas de photo avec le nom en A1, d'aller chercher une autre photo dont le nom serait en M1 et que si M1 ="" de prendre la photo nommée "DEFAUT" ?

Merci pour votre aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Safranien,
J’essaierais un truc de ce genre :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("Site").Value <> "" Then
    X_Feuil27.Shapes("Photo").Fill.UserPicture ThisWorkbook.Path & "\PDG\" & Range("Site").Value & ".JPG"
ElseIf [M1] <> "" Then
    X_Feuil27.Shapes("Photo").Fill.UserPicture ThisWorkbook.Path & "\PDG\" & Range("M1").Value & ".JPG"
Else
    X_Feuil27.Shapes("Photo").Fill.UserPicture ThisWorkbook.Path & "\PDG\DEFAUT.JPG"
    ActiveSheet.Shapes("Photo").Fill.Solid
    ActiveSheet.Shapes("Photo").Fill.ForeColor.SchemeColor = 65
End If
End Sub
( en supposant que "Site" c'est A1.)
Mais je ne suis pas sur du traitement du Else, pas de fichier pour tester.
 

safranien

XLDnaute Occasionnel
Bonjour Sylvanu

merci beaucoup pour ta propo que j'ai essayée mais qui me retourne une erreur. Ci-joint un fichier test avec des photos à mettre dans un dossier nommé "PDG".Dans l'onglet PDG, on retrouve en A1 la recopie du texte de la liste déroulante en P1 qui est normalement sur une autre feuille. J'ai une contrainte supplémentaire, mon fichier est forcément en option de calcul manuel, car très volumineux. Je lance les calculs manuellement puis une fois finis, j'actualise plusieurs onglets. Dans ce fichier je n'actualise que l'onglet PDG. Je simule rentrer dans une cellule pour actualiser et ça m'affiche bien la nouvelle image. J'ai utilisé l'enregistreur de macro mais il y a surement plus propre. En attendant j'utilise ça.
J'ai modifié le code et ça semble donner satisfaction. Dans ma cellule A1, ma formule dit que si il n'y a pas d'image par défaut défnie pour un site, afficher "_DEFAUT_1". Du coup, la macro a toujours qqch à récupérer en M1.

Voilà, si tu as des idées d'optimisation d'écriture, je suis preneur ^^
 

Pièces jointes

  • Safranien - photos dossier.xls
    202 KB · Affichages: 11
  • _DEFAUT_1.JPG
    _DEFAUT_1.JPG
    99.2 KB · Affichages: 5
  • _DEFAUT_2.jpg
    _DEFAUT_2.jpg
    122.9 KB · Affichages: 5
  • Site1.jpg
    Site1.jpg
    180.6 KB · Affichages: 4
  • Site2.jpg
    Site2.jpg
    150.5 KB · Affichages: 4
  • Site3.jpg
    Site3.jpg
    130.6 KB · Affichages: 5

Discussions similaires

Réponses
3
Affichages
544

Statistiques des forums

Discussions
312 103
Messages
2 085 324
Membres
102 862
dernier inscrit
Emma35400