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 :

Copier l'image d'une feuille dans un userform tout en conservant un fond transparent


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut Copier l'image d'une feuille dans un userform tout en conservant un fond transparent
    Bonjour à tous,


    J'ai essayé la méthode proposée par patricktoulon et elle marche très bien... C'est exactement ce dont j'ai besoin.

    Pour rappel: http://www.developpez.net/forums/d10...m/#post8719222

    Juste une chose que je n'arrive pas à résoudre, c'est comment obtenir une image avec un fond transparent sachant que l'image de départ est déjà avec un fond transparent?

    Merci de votre aide sachant que l'idéal serait d'obtenir la qualité d'image importée dans l'userform identique à celle d'un métafichier amélioré dans une feuille

    Nota: pour ma part, afin d'éviter de stocker des images dans le classeur, je les crée sur une feuille puis ensuite je souhaite les importer dans un userform... la méthode de Patrick est excellente sauf que le fond de l'image reste opaque...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Salut,

    la propriete BackStyle = 0 repond-elle a ta question ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci de votre réponse

    par rapport à la méthode citée ci-dessus, voilà un extrait de ma procédure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Sub image_dans_clipboard()
        'on copie la selection dans le clipboard
            Sheets("DESSIN").Shapes(élément_fenêtre).CopyPicture xlScreen, xlBitmap  'copie la selection dans le clipboard (xlBitmap:(.bmp, .jpg, .gif))
        'prend l'image dans le cliboard
            Dim hCopy&: OpenClipboard 0&
            hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H8)
            CloseClipboard
            If hCopy = 0 Then Exit Sub
            Const IPictureIID = "{7BF80981-BF32-101A-8BBB-00AA00300CAB}"
            Dim iPic As IPicture, tIID As GUID, tPICTDEST As PICTDESC, Ret As Long
            Ret = IIDFromString(StrConv(IPictureIID, vbUnicode), tIID)
            If Ret Then Exit Sub
            With tPICTDEST
                .cbSize = Len(tPICTDEST)
                .picType = 1              
                .hImage = hCopy
            End With
            Ret = OleCreatePictureIndirect(tPICTDEST, tIID, 1, iPic)
            If Ret Then Exit Sub
            ' ********************************
            ' Crée un controle dans l'Userform
    Ou dois-je entrer cette instruction ou alors est-ce simplement la définition du format d'image que je doit reprendre?

    Mon problème actuel est que l'image est au départ avec un fond transparent mais la procédure avec le fichier "ipicType =1" fait perdre cette propriété à l'image

    Par exemple quand je remplace xlBitmap par xlPicture et que j'affecte le n° des fichiers "wmf" (2) je n'ai plus d'image qui apparaît dans mon control image du formulaire...

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    En reprenant ce que Patrick ta'vait montre dans le fil precedent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Image1.BackStyle = 0
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    RE

    voilà toute ma procédure actuelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub image_dans_clipboard()
        'on copie la selection dans le clipboard
            Sheets("DESSIN").Shapes(élément_fenêtre).CopyPicture xlScreen, xlBitmap  'copie la selection dans le clipboard (xlBitmap:(.bmp, .jpg, .gif))
        'prend l'image dans le cliboard
            Dim hCopy&: OpenClipboard 0&
            hCopy = CopyImage(GetClipboardData(2), 0, 0, 0, &H8)
            CloseClipboard
            If hCopy = 0 Then Exit Sub
            Const IPictureIID = "{7BF80981-BF32-101A-8BBB-00AA00300CAB}"
            Dim iPic As IPicture, tIID As GUID, tPICTDEST As PICTDESC, Ret As Long
            Ret = IIDFromString(StrConv(IPictureIID, vbUnicode), tIID)
            If Ret Then Exit Sub
            With tPICTDEST
                .cbSize = Len(tPICTDEST)
                .picType = 1               ' "1" xlBMP - "2" xlWMF - "3" xlWPG
                .hImage = hCopy
            End With
            Ret = OleCreatePictureIndirect(tPICTDEST, tIID, 1, iPic)
            If Ret Then Exit Sub
            ' ********************************
            ' Crée un controle dans l'Userform
                Dim Obj As Control
                Set Obj = croquis.Controls.Add("Forms.Image.1")
                ' Affiche l'image dans l'UserForm
                    With Obj
                        .Name = élément_fenêtre
                        .Picture = iPic
                        .PictureSizeMode = fmPictureSizeModeStretch 'fmPictureSizeModeZoom
                        .BackStyle = fmBackStyleTransparent
                        .Top = Top_élément_fenêtre
                        .Left = Left_élément_fenêtre
                        .Height = Height_élément_fenêtre
                        .Width = Width_élément_fenêtre
                        .BorderStyle = fmBorderStyleNone
                        .BackStyle = fmBackStyleTransparent
                    End With
            Set iPic = Nothing
            VidePP
    End Sub
    Pour ".BackStyle = fmBackStyleTransparent" je l'ai écris ainsi mais j'ai l'impression que c'est avant que cela se passe: lorsque je colle l'image, elle a déjà perdu son fond transparent

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Les images BMP ne gerent pas les transparences, prefere un GIF par exemple =]
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Voilà ce que j'ai comme codification des images:

    xlBMP 1 Bitmap compatible Windows version 2.0
    xlCGM 7 Métafichier Computer Graphics
    xlDRW 4 DRW
    xlDXF 5 DXF
    xlEPS 8 Postscript encapsulé
    xlHGL 6 HGL
    xlPCT 13 Bitmap Graphic (format Apple PICT)
    xlPCX 10 PC Paintbrush Bitmap Graphic
    xlPIC 11 PIC
    xlPLT 12 PLT
    xlTIF 9 Tagged Image Format File
    xlWMF 2 Métafichier Windows
    xlWPG 3 WordPerfect/DrawPerfect Graphic

    Pour les fichiers "gif" ce serait quoi le code?

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir bernard

    il y a deux version de copie d'image en métafichier du sheets a l'userform celui que tu utilise ne gère pas la transparence et donc transforme tout ce qui est en canal alpha en blanc ou en noir

    pour avoir la transparence il faut que tu utilise le 2 eme modelé c'est celui que j'utilise dans des bouton plus fun pour mon userform dans les contributions

    attention tout de même même celui ci ne gère pas la semi transparence donc tout ce qui est translucide mais pas complètement transparent sera dégradé

    si tu veut vraiment la transparence il te faudra utiliser GDI ou GDI plus arkham en a fait un excellent tutoriel
    mais entre nous autant d'artillerie pour un userform ca me parait un peu lourd

    aurais tu pensé a travailler en html dans un webbrowser par hasard
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tiens comme ca vite fait un exemple
    il y a 2png dans le sheets
    ouvre le userform et clique sur les boutons
    Nom : demo2.gif
Affichages : 2360
Taille : 274,2 Ko
    Fichiers attachés Fichiers attachés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Bonjour Patrick

    Merci pour l'exemple que tu m'a envoyé qui répond parfaitement à ce que je cherchais!

    On perd quand même un peu en qualité d'image par rapport à la même image placée dans une feuille du classeur mais c'est déjà mieux que rien et cela me permet d'avancer.

    Qu'entends-tu par : "aurais tu pensé a travailler en html dans un webbrowser par hasard "... c'est une méthode qui donnerait encore de meilleurs résultats?

    A l'heure où tu m'as envoyé ton message je terminais avec la méthode d'incorporation de l'image dans un graphisme puis de sauvegarde sur le disque et incorporation dans l'userform... avec le type de fichier ".gif" j'obtenais aussi un 1er résultat mais la qualité d'image avec ta méthode est la meilleure.

    En tous cas déjà un grand merci pour ton aide et celle de jpcheck!

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    A l'heure où tu m'as envoyé ton message je terminais avec la méthode d'incorporation de l'image dans un graphisme puis de sauvegarde sur le disque et incorporation dans l'userform... avec le type de fichier ".gif" j'obtenais aussi un 1er résultat mais la qualité d'image avec ta méthode est la meilleure.
    je suis curieux peut être qu'effectivement en sauvant en gif en mettant le chart en transparence on peut garder la transparence je n'ai jamais essayé
    en tout cas je sais que les gig animées garde la transparence dans un control image dans un userform mais n'affiche que la dernière image et donc plus animée

    apres je ne sais pas le boulot que a a faire mais tu a des gratuiciel qui peuvent t'aider je pense notamment a GIMP

    tu ton png avec, tu va a calques ,tu ajoute un calque et tu "exporte as" en gif en cochant animated

    ton image sera transparente dans ton userform sauf comme je l'ai dis les semi transparence seront enlevées car le control image ne le supporte pas

    voila voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Bonjour Patrick,

    Oui ça marche en mettant le chart en transparence et si tu veux je te mets l'exemple ici pour te montrer. Par contre il faut passer par le disque pour stocker l'image et ça c'est moins bien...

    Je découvre un autre problème maintenant car je crée de nouveaux controls sur mon userform avec de belles images et en même temps j'écris du code pour que le control réagisse lorsque l'on click dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim Cible As Boolean
     
    Private Sub M_5_Click()
         type_élément = "M_5"
         If Cible = True Then
            Cible = False
            Else
            Cible = True
         End If
    End Sub
    Malheureusement il n'y a pas de réaction et le control ne semble pas actif.

    Le même control placé physiquement dans l'userform fonctionne avec ce code.

    Y a-t-il une façon de rendre actif ce control placé dynamiquement?

    Merci encore pour tout!

  13. #13
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oui!!! les classes controls
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    euh oui et quesaquo?


  15. #15
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    regarde comment je fait pour classer mes bouton fun!!!
    http://www.developpez.net/forums/d12...?highlight=fun

    c'est le module classe qui est important
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Merci Patrick mais cela devient un peu compliqué pour moi

    Voilà ce que je pense devoir mettre dans le module de classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Public WithEvents M_5 As MSForms.Image
     
     
    Private Sub M_5_Click()
         type_élément = "M_5"
         MsgBox type_élément
         If Cible = True Then
            Cible = False
            Else
            Cible = True
         End If
    End Sub
    Je pensais que de cette façon mon control image placé dynamiquement dans mon userform allait fonctionner... mais j'en suis loin encore apparemment...

    Il me manque la clef

    Si tu peux encore m'aider...

  17. #17
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oulah!! oui tu en ai loin je te ferais un exemple demain

    l'image m5 doit être ajoutée dynamiquement c'est bien ca ?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  18. #18
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Re Patrick,

    Désolé pour ce qui reste au dessus mais je n'ai pas réussi à l'effacer...

    Après une bonne nuit de sommeil voilà où j'en suis:

    Cade dans le formulaire "CROQUIS":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    ' activer les bouton dans le formulaire "CROQUIS"
    Public Collect_Obj As Collection
    ' **********************************************************************
     
    Sub image_sur_formulaire_croquis()
        ' ********************************
        ' Crée un controle dans l'Userform
        ' ********************************
        Dim Obj As MSForms.Image
        Dim Cl As Classe_img
        Set Collect_Obj = New Collection
     
        Set Obj = croquis.Controls.Add("Forms.Image.1", élément_fenêtre, True)
        Set Cl = New Classe_img     'Ajouter à la collection de classe
        Set Cl.GroupImages = Obj
        Collect_Obj.Add Cl
     
        ' Affiche l'image dans l'UserForm
            With Obj 'Initialise le bouton
                .PictureSizeMode = fmPictureSizeModeStretch
                .Top = Top_élément_fenêtre
                .Left = Left_élément_fenêtre
                .Height = Height_élément_fenêtre
                .Width = Width_élément_fenêtre
                .BorderStyle = fmBorderStyleNone
                .BackStyle = fmBackStyleTransparent
                .ZOrder
                .PictureAlignment = fmPictureAlignmentBottomLeft
                .ControlTipText = élément_fenêtre
                .Enabled = True
            End With
     
        COLLE_IMAGE croquis, élément_fenêtre
     
        Set iPic = Nothing
        'VidePP
    End Sub
     
     
    Public Sub ControlClick(Nom As String)
        MsgBox "ça marche: le Nom est:" & Nom
    End Sub
    Code dans le module de classe "Classe_Img":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public WithEvents GroupImages As MSForms.Image
     
     
    Private Sub GroupImages_Click()
        Call croquis.ControlClick(GroupImages.Name)
    End Sub
    Bon tout fonctionne mais je crois que j'ai oublié quelque chose, comme un compteur par exemple, car seul le dernier control réagit; en effet je fais fonctionner au cas par cas à la création de chaque control...

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2013
    Messages : 46
    Points : 19
    Points
    19
    Par défaut
    Re

    Encore moi

    ok euréka j'ai trouvé et tout fonctionne à merveille: j'ai déplacé les déclarations dans le module qui lance la création des controls et je les ai déclarées en "Public":

    Nom : c.jpg
Affichages : 2096
Taille : 405,8 Ko

    ouf....

    Merci pour tout en tous cas... vos exemples m'ont bien aidé!

  20. #20
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour bernard
    il y a moyen de tout faire dans le module classe

    mais quand je regarde ton classement j'avouer que j'au du mal a comprendre comment toutes tes images peuvent fonctionner

    je ne sais pas ce que tu fait je ne peut t'en dire plus il me faudrait un fichier en exemple

    et je te le fait tout dans la classe
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2003] Image d'une feuille dans un userform
    Par apnw7931 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 25/08/2018, 17h06
  2. Image d'une feuille dans un userform
    Par bernard_metz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/08/2016, 23h26
  3. [XL-2016] Image d'une feuille dans un userform
    Par Ghost0000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/05/2016, 15h42
  4. Image d'une feuille dans un userform
    Par bernard_metz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/02/2013, 10h42
  5. copier des cellules d'une feuille dans une autres sous condition
    Par olivertwist dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/05/2007, 10h42

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