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. Mais regarde ton tableau en base BDD, tu as 2 chemins d'image, un finissant avec le sous-dossier Photos, l'autre avec les sous-dossiers TEST\photos
Donc, il vaudrait mieux n'avoir qu'un seul chemin. Car en plus cela te donne soit des images en double. Ou bien des images inexistantes dans un dossier, ce qui conduit à créer des X.
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, de plus, 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 en plus et le cafard se pointe... Reprendre à tête bien reposée l'onglet BDD!!!
Bonjour
tout ce que tu évoques est corrigé dans la version 35.
J'ai toujours le bug, et quand il y a 3 photos, seulement 2 sont "détectées".
A nouveau,
Suite,
Tu peux me faire un fichier d'entension xlsx, comportant deux feuilles.
La première avec la copie image de ta feuille BDD, représentant l'ensemble de ses colonnes. Donc avec la colonne M.
Après le bug tu fais annuler et tu vas sur cette feuille BDD. S'il y a 3 images, il devrait y avoir 3 lignes en colonne M avec leur chemin complet et non deux lignes.
La deuxième avec la copie des 3 images qui amènent le bug et leur nom. Si possible aussi 3 autres images d'une autre référence. Afin que je puisse tester sur mon fichier macro d'origine. Ce dernier ne pose aucun souci puisque j'arrive à ressortir sans bug les 3 images.
Voir mon message d'hier à 14h42 où l'image no 3 est bien passée (19233-MC7-000) et le chevron rouge indiquant celle-ci comme ultime image pour cette référence.
Je te répondrais ce soir.
Ok. Je ferai ça cet am. ;)
Bonjour
Sur mon fichier de travail, celui avec les 1522 références, je n'ai pas mis les 13 lignes dans le module 3 (voir mon message de jeudi à 09h04) et là, je n'ai pas de bug, les images s'affichent bien dans le formulaire ModificationHonda et AjouterAuDevis, mais 1 seule photo sur ce dernier.
Le chevron se met bien au rouge et devient inactif dès la dernière image atteinte.
Donc, tout va bien tant que je n'ajoute pas ces fameuses 13 lignes.
Je t'ai fais un fichier .xslx mais les macros sont perdues, bien sûr.
il y a aussi le fichier .xlsb
J'ai ajouté une référence avec 4 photos. Elles ont les noms suivants :
- 22100MA1000-01_a03d.jpg
- 22100MA1000-02_e0d2.jpg
- 22100MA1000-03_97e8.jpg
- 22100MA1000-04_ad6f.jpg
J'ai même fait une image pour afficher "pas d'image supplémentaire". NoImageSup.jpg Ce que tu m'avais suggéré.
Je m'aperçois que ça bloque dès la deuxième image.
En fait, peut importe le nom de l'image par rapport à la référence. Une image n'a pas forcément la référence comme nom.
les 4 nouvelles images sont bien filtrées, elles apparaissent bien dans la colonne M.
Les noms des 3 images qui sont de la référence 19233 MC7 000 sont affichées en capture ci-dessous.
Merci de ton aide.
Bonsoir Papicx, le Fil,
OK, j'ai téléchargé et regarderais après dîner.
Sans doute tu as ajouté un bout de code ou un caractère qui pose souci.
Si j'ai le temps de corriger et tester je répondrais en fin de soirée. Sinon demain.
À plus.