IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Remplir une ImageList depuis un UserForm [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Architecte
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut Remplir une ImageList depuis un UserForm
    Bonjour à toutes et tous !

    Un problème se pose à moi, qui malgré toutes mes tentatives, me résiste. Pour le taf, je suis en train de construire une petite base de donnée de recensement que les utilisateurs pourrons nourrir à l'aide d'un UserForm.

    Celui-ci comprends un certains nombre de contrôleurs pour lesquels j'ai réussi à faire l'enregistrement des données sur une des feuilles du classeur.
    Le formulaire doit aussi permettre de charger des images pour chaque entrées de la base de données. J'avais dans un premier temps stocké les images dans la feuille, mais cela n'est pas réaliste s'il y a un grand nombre d'entrées.
    J'ai donc pris le parti d'utiliser des ImageList afin de stocker les images. Cependant, voilà la situation :


    Charger l'image depuis l'ordinateur au travers du formulaire : OK
    Afficher l'image dans le formulaire : OK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub ImageSite()
    'Fonction d'insertion de l'image de site dans le formulaire
     
        InsImage1 = Application.GetOpenFilename 'With Application.FileDialog(msoFileDialogFilePicker)
        Me.Image1.Picture = LoadPicture(InsImage1)
        Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
     
        Me.ImageList1.ListImages.Add , , LoadPicture(InsImage1)
     
    End Sub
    Stocker l'image dans l'ImageList : PROBLÈME

    En fait l'image, a priori, se charge dans l'ImageList. En effet ce bouton indique un nombre d'objet cohérent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton8_Click()
    'Bouton pour vérifier le nombre d'entrée dans l'ImageList1
     
        MsgBox Me.ImageList1.ListImages.Count
     
    End Sub
    Mais quand je me rends dans la boîte de dialogue (Propriété de l'ImageList > Personnalisé) de l'ImageList, il n'y aucunes images... C'est comme si l'image se chargeait en "cache" et disparaissait à la fermeture du formulaire...

    Si vos lumières pouvaient m'éclairer sur ce problème, ce serait super,

    cordialement,

    jo

    PS En pièce-jointe le fichier pour tester :140618_fiche recensement - 2.zip

    Mode d'emploi :
    Ouvrez le formulaire avec le bouton "Formulaire" sur la feuille DATA, saisissez vos données et votre images .jpg puis cliquer sur le bouton nouvelle entrée...

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Je suis loin d'être un pro de ce contrôle, mais les images chargées dynamiquement par ton bouton "Ajouter une image" ne sont pas conservées une fois que le userform est déchargé. Quand tu vas dans "personnalisé, tu ne trouves que les images que tu as chargé que par "Insérer une image" de l'onglet "image" de "Personnalisé". Par analogie, c'est comme les données d'un combobox que tu charges avec "AddItem" contrairement à celles que tu charges avec "RowSource".

  3. #3
    Membre régulier
    Homme Profil pro
    Architecte
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut
    Hello !

    Merci pour ta réponse. En effet, c'est le comportement que j'ai constaté. Du coup, je cherche à le contourner pour que mon bouton "ajouter une image..." produise le même effet que par "Insérer une image" de l'onglet "image" de "Personnalisé".

    J'ai essayé de mettre ma ImageList sur un autre UserFrom, sans succès.
    Devrais-je essayé de la mettre sur une feuille ?

    La combat du débutant...!

  4. #4
    Membre régulier
    Homme Profil pro
    Architecte
    Inscrit en
    Juin 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Juin 2014
    Messages : 7
    Par défaut
    Ok !

    Auto-réponse, comme quoi fallait que je poste ici pour avancer !

    Il suffisait de mettre l' ImageList sur une feuille...

    Bon, c'est un peu plus fonctionnel mais ça reste très lourd d'avoir les images dans le fichier. Donc, prochaine étape d'optimisation, réussir à coder une routine qui copie l'image de son dossier source à un dossier qui se promènera avec le fichier Excel.

    Si cela inspire l'un-e d'entre, je veux bien des tuyaux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir une DataGrid depuis une requête ODBC
    Par peephole83 dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 28/07/2010, 12h07
  2. récupérer les données d'une cellule depuis un UserForm
    Par domy59 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2008, 00h09
  3. remplir une combobox depuis un recordset
    Par Zorgloub dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2008, 16h12
  4. remplir une dropdownlist depuis une base sql
    Par Flamby38 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 30/01/2008, 19h30
  5. Réponses: 8
    Dernier message: 11/06/2006, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo