Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Help ! Utilisation Objet ImageList dans Formulaire

sweader

XLDnaute Nouveau
Bonjour,

Par avance, merci aux âmes charitables qui pourront m'aider à comprendre, voir solutionner mon problème avec les Objets de type ImageList utilisé dans les Formulaires en VBA sur EXCEL ....
Je vais essayer de faire court.

Comme nombre d'entre vous, j'ai eu recours à l'utilisation d'Objet type ImageList, pour gérer des fichiers image dans mes applications EXCEL personnalisé.
Je rencontre le problème suivant.

Sur un formulaire X, au travers d'un bouton Y qui affiche un FileSelect, je charge des images dans un ImageList, via l'instruction des plus communément utilisé :
- Me.ImageList1.ListImages.Add , "Cle2", LoadPicture("C:\Tartenpion.JPG")

"Tartenpion.jpg", étant naturellement issu du FileSelect.
Dés le chargement de l'image, je visualise l'import dans un Objet de type Image, avec la propriété "Picture", Image qui s'affiche correctement ...... jusque là pas de problème,
la manipulation des Images importées se fait correctement et sans anicroches....

En complément et par "sécurité", un bouton "Sauvegarde", qui enregistre le fichier dans sa totalité.... Toujours aucun problème....
J'effectue une sauvegarde, pensant que cette action permet/valide l'enregistrement des images importées dans l'objet ImageList, ce qui me permettra ultérieurement, après fermeture puis réouverture du fichier EXCEL, de pouvoir "récupérer" les images importées, les manipuler, ...... Bref, que les images du ImageList font maintenant partie intégrante du fichier EXCEL .......

Et bien non, malgré l'emploi de l'instruction "LoadPicture ....", de sauvegardes du fichier avec l'objet ImageList "chargé" d'images ...... PLUS RIEN !!!!
Au réemploi du fichier, l'ImageList est vide !!!!!! je ne peux donc rien faire .....

Pour celles et ceux qui souhaiterait m'éclairer, pouvez-vous me confirmer que j'emploi correctement cet objet ??? ou si je me trompe sur son usage, en pensant, qu'une fois l'ImageList "chargé" et sauvegardé, on peut utiliser à sa bonne guise et comme souhaité, les images intégrées .... comme on veut ???
En clair, en fais-je bon usage ???

Ou alors faut-il, une fois l'ImageList "chargé" d'images, manipuler ces images en les intégrant une à une dans des "Picture", enregistrer et se servir ensuite de ces pictures, en rechargaeant l'ImageList depuis ces Pictures ?????

Alors, j'espère avoir été clair dans mes explications ...... et je remercie, les sachants qui pourront éclairer ma lanterne !!!!

Par avance, merci à vous !!!

Cordialement.

Pascal
 
Dernière édition:

Yurperqod

XLDnaute Occasionnel
Bonjour à tous, sweader, Si...

sweader
A priori, il faut dans le code VBA détecter la version d'Office utilisée sur le poste où se trouve le classeur
puis ajouter la référence par macro.
J'ai lu des discussions qui évoquait ce sujet sur le forum.
Si tu les retrouves dans les anciennes discussions, tu peux mettre les liens dans ta discussion, stp.

Ajout édition
J'ai retrouvé cet exemple de Dranreb pour ajouter une référence
https://www.excel-downloads.com/thr...-de-code-pour-generer-2-etats.20002882/page-2
 
Dernière édition:

sweader

XLDnaute Nouveau
Bonjour à TOUS !!!!

Me revoilà ... Alors avant toute chose merci à l'ensemble des contributeurs aux réponses à mon problème...
J'ai enfin trouvé la solution, qui peut servir à tout le monde , je pense.

Alors je pose de nouveau problème :
- Lors de l'utilisation d'un Objet IMAGELIST dans un formulaire, après selection d'une image en utilisant l'instruction LOAD, cette dernière ne s'enregistre pas dans l'Objet IMAGELIST ....
- La seule opération qui fonctionne est de passer par les propriétés de l'OBJET, en l'occurence, "PERSONNALISE", puis utiliser l'outil proposé par "Ajouter une IMAGE"....

Après de nombreux essais et recherches, il s'avère que c'est un fait que l'image ajoutée par l'instruction LOAD NE FONCTIONNE PAS, le contrôle ne semble pas prévu pour ça .... Merci à la communauté d'infirmer ou de confirmer ce constat ...

La solution que j'ai trouvé pour que cela fonctionne est de passer par la mise en place de l'Objet IMAGELIST sur une feuille de calcul ... et là, Ô !! Miracle, toutes les instructions fonctionnent, comme le fameux LOAD ....
Une fois ajoutées, les images dans l'objet IMAGELIST, sont accessibles depuis n'importe quel code .. et donc, les images ajoutées se voient "intégrées" au fichier EXCEL ....
Voilà la conclusion de mon POST ....

Bonne utilisation à toutes et tous !!!!

Cordialement.

Pascal.

PS : Je ne vois pas ou ne trouve pas la fonction pour "clore" ce sujet ... merci à l'un d'entre vous, si cela est possible de passer le sujet en mode "RESOLU"...
 
Dernière édition:

Yurperqod

XLDnaute Occasionnel
Bonjour à tous

sweader
Pourquoi tu veux absolument utiliser LoadPicture ?
 

sweader

XLDnaute Nouveau
Bonjour,

En fait j'ai besoin de passer par LOAD PICTURE, afin que les utilisateurs de mon application EXCEL puissent ajouter ou modifier les images de leurs choix pour personnaliser l'espace et environnement de travail initial proposé par mes soins.

A savoir, modifier les images des ICONES et BOUTONS présents dans l'appli EXCEL, modifier les fonds de pages des feuilles de calculs et des BACKGROUND des Formulaires, modifier les symboles ou ajouter des photos dans les TREEVIEWs existants, personnaliser les ICONES des messages avec l'Utilisateur (Messages réalisés par des USERFORMS, intégrant un message TEXTE et une image/icone en relation avec le TEXTE) et là un peu plus dur, mais je suis dessus, modifier les ICONES des Barres de MENU déroulants personnalisés du RUBAN .....

Bref, pouvoir TOTALEMENT personnaliser l'environnement de l'application .....
Pour ce faire, j'ai donc recréé un FORMULAIRE, avec toutes les fonctions associées à l'Objet IMAGELIST : Chargements d'images, sauvegardes, suppressions, renommage des Images, affectation ou remplacement de l'image dans les Objets de l'application, etc ....
En image jointe ci-dessous , un Hardcopy d'Ecran du Formulaire ....



Du coup, tu comprends, que je ne peux pas faire manipuler par l'utilisateur l'Objet IMAGELIST depuis l'éditeur VBE pour ajouter des images avec la propriété "Personnalisé" ......

Voilà, tu sais tout ou presque !!! ... lololol ...
Cela répond-t-il clairement au questionnement ???? .....
Cela t'inspire-t-il pour tes propres applications ?
Je reste à l'écoute si besoin de conseils ..... Ou pas !!! ... lol

Cordialement.

Pascal.
 
Dernière édition:

Yurperqod

XLDnaute Occasionnel
Quand les images sont stockées dans le controle ImageList
On a pas besoin de passer par LoadPicture
Cette écriture suffit
Image1.Picture = ImageList1.ListImages(3).Picture
C'est juste ca que je voulais dire.
 

Discussions similaires

Réponses
12
Affichages
743
Réponses
1
Affichages
438
Compte Supprimé 979
C
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…