cs_vevel
Messages postés62Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention30 mai 2017
-
10 déc. 2013 à 23:55
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
22 déc. 2013 à 18:29
Bonjour,
J'ai une petite question a propos de image.picture = loadpicture ("tartampion.GIF")
Bon déjà j'ai galéré pour comprendre que VBA ne prenait pas en compte mes images .png.... ;0(
Mais sinon, quand on écrit image.picture = loadpicture ("tartampion.GIF"), il renvoie une valeur pour image.picture.
Comment se fait-il que cette valeur soit différente a chaque fois (même si l'image chargée est toujours la même)?
Et donc j'imagine qu'il n'est pas possible de faire image.picture = 563214562.
C'est juste que je fais un petit programme qui sera utilisé par des collègues. J'ai une base de donnée de centaines d'images sur mon ordi, que mes collègues n'ont pas. Je souhaiterais donc rentrer en dur ces images dans mon code VBA. Je pourrais les coller dans un userform me direz vous, mais ça vas me prendre un temps fou.
Je pensais dans une macro temporaire, récupérer cette valeur pour chaque image, et dans mon programme lui dire tartampion.picture =
421242. Mais je ne penses pas que ça marche comme cela...
Bonjour,
1) la valeur attribuée par VB n'est qu'un pointeur interne vers un bitmap conservé en mémoire, au moment de l'insertion d'une image. Elle n'est en aucun cas un "condensé" du bitmap inséré ... Juste un pointeur (une adresse) vers un tableau de dibits gardé en mémoire (à cette adresse).
Il y a autant de ces tableaux qu'il y a d'images ainsi insérées, qu'elles soient ou non identiques.
Tu comprendras mieux avec une analogie avec les variables :
Tu peux avoir deux variables (toto et titi, par exemple) qui ont la même valeur (disons 10, par exemple). Il n'en reste pas moins que tu auras bien DEUX variables pour UNE MEME valeur
2) Sauf à distribuer avec ton classeur :
- soit un dossier contenant tous les fichiers images à utiliser (conseillé)
- soit une base de données contenant ces images et non leur chemin (déconseillé)
tu n'as pour faire ce que tu veux faire pas d'autre choix que celui :
- d'insérer réellement toutes ces images dans ton classeur (en leur attribuant un nom)
- de les utiliser ensuite en te référant à ces images par leur nom
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
cs_vevel
Messages postés62Date d'inscriptionjeudi 26 mai 2005StatutMembreDernière intervention30 mai 20171 22 déc. 2013 à 15:21
Bonjour ucfoutu, pas forcément la réponse que j'attendais, car ça va me demander un peu plus de travail pour insérer toutes ces images, et alourdir mon programme. Mais si je n'ai pas le choix ;O(
Merci Jordane45; mais le problème que j'ai déjà expliqué, c'est que mes collègues ne pourrons pas utiliser le programme car il n'aurons pas accès a ma base de données d'images.
Merci a tous de votre aide.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 déc. 2013 à 18:29
Et alors ?
et alourdir mon programme Que crois-tu donc qu'il se passe, lorsque tu affectes une image à une variable ? ===>> un tabeau de données est gardé en mémoire dans ton appli !
Si tu ne veux pas alourdir ton appli, c'est la solution de conservation des images à l'extérieur de ton appli qui, seule, est alors valable !