Comment charger image.picture avec une valeur??

cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 - 10 déc. 2013 à 23:55
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 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...

Merci d'avance pour vos réponses.

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 11/12/2013 à 07:50
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
2
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
11 déc. 2013 à 00:02
Bonjour,

Tu peux utiliser LoadPicture pour initialiser des varibles correspondant à ton image
exemple
Set img1 = LoadPicture("Collines.jpg")
Image1.Picture = img1

0
cs_vevel Messages postés 62 Date d'inscription jeudi 26 mai 2005 Statut Membre Dernière intervention 30 mai 2017 1
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
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 !
0
Rejoignez-nous