Afficher les images dans le formulaire
Bonjour X Cellus,
J'ai appliqué ton petit code, c'est sympa.
Comme suggéré, j'ai créé une petite image avec un texte "Pas d'image supplémentaire". Elle est incuse dans l'archive zip v 33.
J'ai toujours le bug qui fait que si je double-clique dans le tableau de l'onglet Honda, et si l'article a plus que 1 photo, le code VBA m'affiche la msgbox comme s'il ne trouvait pas l'image.
C'est certainement dû à mon ajout de code depuis que la seconde image s'affiche dans le formulaire AjouterAuDEvis.
L'image est bien présente, l'ordre des images est modifié pour cet article. Ce n'est pas bien grave, mais si ça peut t'aider à trouver d'où ça vient.
Merci de ton aide.
PS : Suite à l'affichage de cette msgbox, la fonction Sub M_SupprimerImage(sFichier) contenue dans le module 3 ajoute un "X" dans la colonne des priorités du tableau contenu dans l'onglet BDD_Images. C'est cela qui modifie l'ordre d'apparition des images.
Donc, ne te focalise pas sur l'ordre des images. Quand le problème d'affichage de cette msgbox sera résolu, l'ordre des images ne sera plus modifié.
Sub M_SupprimerImage(sFichier)
Answ = MsgBox(Chr(34) & sFichier & Chr(34) & vbLf & vbLf & "Voulez-vous conserver le lien vers ce fichier dans le tableau " & Chr(34) & "TBL_Images" & Chr(34) & " de la feuille " & Chr(34) & "BDD_Images" & Chr(34) & _
" ?" & vbLf & vbLf & "Oui = le lien sera conservé" & vbLf & "Non = le lien sera supprimé.", vbYesNoCancel, sFichier)
r = Application.IfError(Application.Match(sFichier, Range("Tbl_images[image]"), 0), 0) 'chercher ce faux fichier dans le tableau de BDD_images
If r > 0 Then 'trouvé !
Select Case Answ
Case vbNo 'supprimer cette ligne dans le tableau de BDD_images, on a répondu avec un "non" !!!!
Range("Tbl_images").ListObject.ListRows(r).Range.Delete 'supprimer sa ligne dans le tableau
MyImage.Picture = LoadPicture(vbNullString)
Case vbYes 'ne pas supprimer mais déplacer le fichier vers le bout de queue
With Range("Tbl_images").ListObject.ListRows(r).Range.Cells(1, 5)
.Value = "X" & .Value 'ajouter un "X" de manière que l'image sera la dernière image
End With
Case Else
MsgBox "option 3 : pas encore dit ce qu'il faut faire ;-( "
End Select
M_aImages
If UBound(aImages) >= 1 Then Mon_Image 'lancer recurrent la macro et on demande la première image
End If
End SubDepuis que j'ai ajouté les lignes pour afficher la deuxième image, à chaque article, il y a des "X" ajoutés dans le tableau des images.
Je viens de voir ton message précédent au sujet du chevron.
C'est top ! :) Merci !
Pour le chemin relatif, Je n'ai pas bien du m'expliquer.
Je ne saisi pas bien comment utiliser ta solution en haut du tableau, pour l'intégrer au code VBA quand j'ajoute une photo.
J'aurais voulu que lorsque je communique le fichier Excel avec le dossier Photos rempli, que quelque soit le nouvel emplacement sur le pc "receveur", que le code puisse retrouver le sous dossier Photos et continuer à travailler. Cas qui se produira quand je vais changer de pc, par exemple.
Cela est il possible de le réaliser ?
La version 35 contient la modif du chevron qui se met au rouge. ;)
message à supprimer. désoléA nouveau,
Pour le Chemin Relatif, il n'est pas besoin de l'intégrer au code VBA. Car le code va chercher le bon chemin en feuille BDD, colonne M qui filtre les images à afficher.
Si après évolution avec le texte en A1 et ajout de la formule le chemin est changé par toi ou autre(s) personne(s) par un nouveau chemin existant. La colonne M en prendra compte.
Pour ton message d'erreur, cela ne doit pas venir du code. Je n'ai d'ailleurs pas téléchargé ta nouvelle version. Souviens toi que je t'avais demandé pourquoi un fichier d'image avait la référence 7003 dans ton stock images et non 7000 comme Inscris en feuille Honda.
Or, tu as une extension jpg, pour la troisième photo alors que cette 3ième photo à une extension .jpeg
Et donc, c'est comme pour le s (pluriel) que tu as ajouté malencontreusement à MyImage. Ici par étourderie tu as omis le e à l'image en stock 19233mc7000.jpeg mais Inscris en jpg sur l'onglet BDD.
En informatique un seul caractère en moins ou plus et le cafard se pointe...