Bonjour,
La faute à cette ligne : choix(i) = choix(i) & BD(i, K) & " * " dans Private Sub UserForm_Initialize() et à cette ligne : A = Split(Tbl(i), "*") dans Private Sub TextBox1_Change()
Dans la première ligne on crée un tableau choix où chaque élément est constitué des données des 34 colonnes de la feuille, séparées par " * " (soit Espace Etoile Espace)
Dans la deuxième, on split tous les éléments du tableau Tbl (qui est une copie du tableau choix), mais le separateur utilisé est "*" (Etoile sans aucun espace). Donc chaque donnée se voit encadrée d'espace.
Et donc dans Private Sub ListBox1_Click(), le nom de l'image à trouver par la ligne :ListBox1.List(ListBox1.ListIndex, 33), est (par exemple) " Photo 1 " au lieu de "Photo 1" . la fonction dir ne trouve donc pas de fichier avec ce nom.
Solution possible : utiliser le même séparateur dans les deux lignes du début de ce message ! (testé avec "*")
A+