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 :

Image d'une feuille dans un userform [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut Image d'une feuille dans un userform
    Bonjour,

    je souhaite mettre une image (un logo) dans un coin de mon userform, à partir d'une image déja contenu dans une feuille excel.

    Je ne souhaite pas faire de lien avec l'adresse de la photo sur mon disque dur (C:dossiers/photos.jpg).

    Pourriez-vous m'aiguiller s'il vous plait ?

    Je vous remercie pour votre futur aide.

    apnw7931

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut heu pour ton image dans l'uf
    bonjour
    il va te faloir utiliser les apis
    il y a quelque s solution

    en voila une :

    dans un module standard
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    'Option Explicit
     
    Public Type GUID
      Data1 As Long
      Data2 As Integer
      Data3 As Integer
      Data4(8) As Byte
    End Type
     
    Public Type PICTDESC
      cbSize As Long
      picType As Long
      hImage As Long
    End Type
     
    Public Declare Function OpenClipboard& Lib "user32" (ByVal hwnd As Long)
    Public Declare Function EmptyClipboard Lib "user32" () As Long
    Public Declare Function GetClipboardData& Lib "user32" (ByVal wFormat%)
    Public Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Public Declare Function CloseClipboard& Lib "user32" ()
    Public Declare Function CopyImage& Lib "user32" (ByVal handle&, ByVal un1&, ByVal n1&, ByVal n2&, ByVal un2&)
    Public Declare Function IIDFromString Lib "ole32" (ByVal lpsz As String, ByRef lpiid As GUID) As Long
    Public Declare Function OleCreatePictureIndirect Lib "olepro32" (pPictDesc As PICTDESC, ByRef riid As GUID, ByVal fOwn As Long, ByRef ppvObj As IPicture) As Long
     
     
     
    Public mode As Long
     
     
    Sub VidePP()
    OpenClipboard 0
    EmptyClipboard
    CloseClipboard
    End Sub
     
     
    Sub apercu_dans_uf()
    Dim NOM_IMAGE As Variant
    'on copie la selection dans le clipboard
    Sheets("nom de la sheets").shapes("nom de l'image de la feuille").CopyPicture xlScreen, xlBitmap 'copie la selection dans le clipboard
    '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
     
    UserForm1.Image1.Picture = iPic 'a toi d'adapter le nom de l'userform et le nom du control image
     
    Set iPic = Nothing
    VidePP
    End Sub
    et tu apel la fonction au momment que tu desire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private sub userform_initialyse ()
    apercu_dans_uf
    end sub
    n'esite pas si tu a des soucis avec ca


    au plaisir
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut
    Merci pour ton aide.

    Par contre, j'ai essayé (rapidement) ton code, mais sans succès.
    De plus, je ne souhaitais pas quelque chose d'aussi long (et compliqué).
    Je préfère alors m'abstenir d'image dans mon userform.

    A moins qu'il existe une méthode (plus) simple ?!

    Merci quand même

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    en plus simple serait de faire un loadpicture et le metre dans le dossier de l'application mais bon il me semble que tu n'envisagais pas cette solution
    mais si le travail est trop dur tu a raison oublie l'image dans le usf



    au plaisir
    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

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 190
    Par défaut
    Merci pour ton aide Patrick.

    Par contre, peut-être est-il possible de s'inspirer de la pièce jointe fournie ici : http://excel.developpez.com/sources/...ameTransparent

    D'ou provient l'image ?!
    Fichiers attachés Fichiers attachés

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    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 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir

    le lien concerne la mise au top de la frame ou pas ca n'a rien a voir avec ce que tu desire

    non vraiment si tu n'a pas l'intention de te jetter dans l'arrenne sans vouloir t'offencer tu devrais laisser tomber

    surtout que l'exemple que je t'ai fourni fonctionne parfaitement bien
    a condition de bien changer les noms de (feuille,imagedans la feuille,userform,imagedans l'userform )

    et pour finir sache que l'exemple que je t'ai donné mis apart celui avec loadpicture et bien c'est le plus facile puisque rien a faire simplement copier le code dans un module et l'apel dans le initialyse
    voila

    au plaisir
    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.

Discussions similaires

  1. [XL-2007] Validation d'une feuille dans un userform
    Par Informaticia dans le forum Excel
    Réponses: 6
    Dernier message: 12/07/2013, 16h41
  2. 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
  3. Déplacer une image d'une feuille vers une autre dans un fichier Excel
    Par helenaide dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2011, 14h27
  4. transferer une image de la feuille vers un userform
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/11/2007, 06h28

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