Microsoft 365 Copier une image d'une feuille de calcul vers un UserForm

  • Initiateur de la discussion Initiateur de la discussion NONO14
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

NONO14

XLDnaute Impliqué
Bonjour à toutes et à tous,
Je viens requérir votre aide pour le problème suivant :
J'ai deux UserForm, un qui se nomme (UfMenuAide) et l'autre (FrmFichePourAide).
Dans le 1er il y a une liste (Menus, Enregistrements, etc...)
Lorsque je clique sur un choix alors FrmFichePourAide s'affiche avec les données d'aides concernant l'intitulé.
Dans FrmFichePourAide, il y a deux zones, une zone image "ImageFicheAide" et une autre zone ListBox "LstTexteAide".
Donc le texte s'affiche bien, mais pas l'image qui est liée et je n'arrive pas à trouver l'erreur qui s'affiche "Propriétés ou méthode non gérée par l'objet".
Les données sont des zones nommées dans la feuille "ModeEmploi". J'ai volontairement supprimé des données dans "ModeEmploi" car le fichier était trop volumineux, mais ce qui fonctionnera pour un exemple doit pouvoir fonctionner pour les autres.
Je vous joins un fichier exemple et je vous remercie par avance pour l'aide que vous pourrez m'apporter.
 

Pièces jointes

Solution
Bonjour NONO14,

Plusieurs choses n'allaient pas, voici les plus importantes :

1) A partir d'un module standard on ne peut pas exécuter une macro située dans un UserForm, contentez-vous de :
VB:
Public Section As String 'mémorise la variable

Public Sub AfficheAide(x As String)
    Section = x
    FrmFichePourAide.Show
End Sub
2) La création du fichier bmp temporaire n'allait pas, il faut utiliser un graphique :
VB:
    'création du fichier temporaire en BMP
    TempPath = ThisWorkbook.Path & "\" & NomImage & ".bmp"
   Shp.CopyPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Shp.Width, Shp.Height).Chart
        Do
            .Paste 'Coller
            DoEvents
        Loop While .Shapes.Count = 0 'en attente du collage...
Bonjour NONO14,

Plusieurs choses n'allaient pas, voici les plus importantes :

1) A partir d'un module standard on ne peut pas exécuter une macro située dans un UserForm, contentez-vous de :
VB:
Public Section As String 'mémorise la variable

Public Sub AfficheAide(x As String)
    Section = x
    FrmFichePourAide.Show
End Sub
2) La création du fichier bmp temporaire n'allait pas, il faut utiliser un graphique :
VB:
    'création du fichier temporaire en BMP
    TempPath = ThisWorkbook.Path & "\" & NomImage & ".bmp"
   Shp.CopyPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Shp.Width, Shp.Height).Chart
        Do
            .Paste 'Coller
            DoEvents
        Loop While .Shapes.Count = 0 'en attente du collage
        .Export TempPath, "bmp" 'création du fichier
        .Parent.Delete
    End With
    Me.ImageFicheAide.Picture = LoadPicture(TempPath)
    Me.Repaint
3) Vous n'aviez pas nommé les plages nécessaires au remplissage de la ListBox.

A+
 

Pièces jointes

Bonjour NONO14,

Plusieurs choses n'allaient pas, voici les plus importantes :

1) A partir d'un module standard on ne peut pas exécuter une macro située dans un UserForm, contentez-vous de :
VB:
Public Section As String 'mémorise la variable

Public Sub AfficheAide(x As String)
    Section = x
    FrmFichePourAide.Show
End Sub
2) La création du fichier bmp temporaire n'allait pas, il faut utiliser un graphique :
VB:
    'création du fichier temporaire en BMP
    TempPath = ThisWorkbook.Path & "\" & NomImage & ".bmp"
   Shp.CopyPicture
    With ActiveSheet.ChartObjects.Add(0, 0, Shp.Width, Shp.Height).Chart
        Do
            .Paste 'Coller
            DoEvents
        Loop While .Shapes.Count = 0 'en attente du collage
        .Export TempPath, "bmp" 'création du fichier
        .Parent.Delete
    End With
    Me.ImageFicheAide.Picture = LoadPicture(TempPath)
    Me.Repaint
3) Vous n'aviez pas nommé les plages nécessaires au remplissage de la ListBox.

A+
Bonjour Job75,
Merci beaucoup pour votre aide. Je ne m'en sortais pas et pour cause. Je vais pouvoir transposer votre solution dans mon projet.
Encore mille mercis.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
837
Retour