Bonsoir Kira,
Fais un clic droit sur ta liste déroulante de la feuille Fiche Adhérent, tu affectes une nouvelle macro, laisse le nom proposé par Excel, puis tu remplaces la macro vide par celle-ci :
Sub Zonecombinée2_QuandChangement()
Dim sPhoto As String
sPhoto = Feuil7.[C31]
If Dir(ThisWorkbook.Path & "\" & sPhoto) <> "" Then
Feuil7.Image1.Picture = LoadPicture(ThisWorkbook.Path & "\" & sPhoto)
Else
Feuil7.Image1.Picture = Nothing
End If
' Il faut mettre le PictureSizeMode=fmPictureSizeModeStretch pour ajuster la photo à l'objet image
Feuil7.Image1.PictureSizeMode = fmPictureSizeModeStretch ' A faire une seule fois
End Sub
Ensuite il faut que tu charges la cellule C31 de la même façon que tu as fait les autres cellules de cette feuille.
Enfin quand tu sélectionnes un item, il affiche la photo si elle existe, sinon le contrôle image se vide.
J'ai utilisé la propriété ThisWorkbook.Path dans mon exemple en considérant que les photos sont dans le répertoire du classeur, si tu crées un répertoire pour les photos, mets le dans un sous-répertoire, tu pourras ainsi faire un truc du genre :
ThisWorkbook.Path & "\Photos\" & sPhoto. L'avantage de cette méthode, c'est que si tu déplaces le dossier, tu n'as pas besoin de repréciser l'emplacement du répertoire photo, on appelle cela un emplacement relatif.
Par contre, ton fichier est très, très, très, très gourmand en mémoire :
Il fait 10Mo sur le disque, il met plus d'une minute pour s'ouvrir chez moi, et prend 1,2Go de mémoire à l'ouverture puis prend entre 477Mo et 900Mo de mémoire (sans doute qu'il double la mémoire au moment de l'enregistrement), c'est beaucoup trop !
Pour réduire cela considérablement, tu dois comprendre ton erreur :
tu as créé base sur la feuille ABBCFD qui a près de 1000 lignes qui sont presque toutes vides et quand tu fais Ctrl+Fin, la cellule active se positionne en OJ1752, ce n'est pas normal et cela veut dire que la plage utilisée est grandement surdimensionnée par rapport au besoin. Supprime les lignes 10 jusqu'à la fin pour redimensionner la plage utilisée puis enregistre le fichier. L'ascenseur doit reprendre une taille normale en rapport avec le nombre de lignes utilisées. Ensuite transforme ta base de données en table (Insersion/table) si tu veux une ligne sur deux avec un motif de couleur.
Ce qui pose réellement un problème de mémoire, c'est la table qui est sur la feuille FATNA qui va jusqu'à la dernière ligne (plus d'un million de lignes !). Ctrl+Fin te positionnes en dernière ligne, donc méga problème !
Les tables sont auto-dimensionnables, il est inutile de prévoir des lignes vides pour un futur remplissage. Supprime les lignes de la trois jusqu'à la dernière et enregistre ton classeur. Sur mon ordinateur, il passe de 10Mo à 100ko !
Ferme Excel et rouvre le, le fichier ne met que quelques secondes à s'ouvrir et Excel ne prend que 100mo de mémoire.
Si maintenant on revient dans la feuille FATNA, et qu'on saisi un texte en B3, tu verras que la table se redimensionne en récupérant la table la ligne 3 et les cellules H3 et L3 ont bien récupérer la liste de validation de leur colonne correspondante.
Et voilà !!!