Accueil > Forum > > > > Excel: Afficher une shape dans un controle Image
Excel: Afficher une shape dans un controle Image
lundi 20 février 2006 à 14:52:13 |
Excel: Afficher une shape dans un controle Image

loskiller62
|
Bonjour. Voici la description du probleme: * J'ai une image dans une feuille Excel. * J'ai une interface (form) avec un controle Image --> J'aimerais afficher l'image de la feuille Excel dans mon controle Je peux recuperer l'image de la feuille Excel en tant qu'objet shape, mais je ne trouve pas comment l'envoyer dans mon controle Image. L'ideal serait de convertir l'objet shape en objet Picture. Cela peut se eventuellement se faire via la methode myShape.CopyPicture (qui copy l'objet shape dans le Clipboard en tant que Picture), mais c'est moche et j'ai pas encore ete jusqu'au bout de cette possibilite. Dim sh As Excel.Shape set sh = ThisWorkbook.Sheets(1).Shapes(1) me.Image1 = sh 'Ne fonctionne pas bien sur, mais c'est l'idee
Une idee?
ps: desole pour l'accentuation je suis en angleterre = clavier qwerty
Vous pensiez que votre souris ne servait à rien? > Le Projet Marmotte! Comparez la distance que vous faites avec les autres internautes :)
|
|
lundi 20 février 2006 à 16:30:03 |
Re : Excel: Afficher une shape dans un controle Image

nanougat
|
Bonjour,
Tu inserts ton image, .jpg par exemple, dans la proprité "Picture" et
tu mets à "1-fmpicturesizemodestrech" la propriété "picturesizemode"
|
|
lundi 20 février 2006 à 19:05:04 |
Re : Excel: Afficher une shape dans un controle Image

loskiller62
|
Réponse acceptée !
Merci nanougat je sais pas ce que j'aurais fais sans toi.... Non sérieusement, je n'ai peut être pas été clair mais je crois qu'en relisant tu devrais arriver à comprendre ce que je veux. De toute façon j'ai abandonné et je passe par le Clipboard (on trouve quelques exemples deci delà). De tete: ThisWorkbook.Sheets(1).Shapes(1).CopyPicture Format:=xlBitmap 'Met l'image dans le clipboardme.Image1.Picture = GetClipboardPicture(Format:=xlBitmap) 'Fonction qui recupere l'image dans le clipboardSi j'y pense demain je balancerais le code de la fonction ici nommée GetClipboardPicture Vous pensiez que votre souris ne servait à rien? > Le Projet Marmotte! Comparez la distance que vous faites avec les autres internautes :)
|
|
mercredi 12 juillet 2006 à 14:04:38 |
Re : Excel: Afficher une shape dans un controle Image

loskiller62
|
Code:
'== PASTE PICTURE ===================================================================================== 'Declare a UDT to store a GUID for the IPicture OLE Interface Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type 'Declare a UDT to store the bitmap information Private Type uPicDesc Size As Long Type As Long hPic As Long hPal As Long End Type 'Does the clipboard contain a bitmap/metafile? Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Integer) As Long 'Open the clipboard to read Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long 'Get a pointer to the bitmap/metafile Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long 'Close the clipboard Private Declare Function CloseClipboard Lib "user32" () As Long 'Convert the handle into an OLE IPicture interface. Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As uPicDesc, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long 'Create our own copy of the metafile, so it doesn't get wiped out by subsequent clipboard updates. Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long 'Create our own copy of the bitmap, so it doesn't get wiped out by subsequent clipboard updates. Declare Function CopyImage Lib "user32" (ByVal handle As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long 'The API format types we're interested in Const CF_BITMAP = 2 Const CF_PALETTE = 9 Const CF_ENHMETAFILE = 14 Const IMAGE_BITMAP = 0 Const LR_COPYRETURNORG = &H4 'OLE Picture types Const PICTYPE_BITMAP = 1 Const PICTYPE_ENHMETAFILE = 4 '======================================================================================================
Function PastePicture(Optional lXlPicType As Long = xlPicture) As IPicture Dim h As Long, hPicAvail As Long, hPtr As Long, hPal As Long, lPicType As Long, hCopy As Long 'Convert the type of picture requested from the xl constant to the API constant lPicType = IIf(lXlPicType = xlBitmap, CF_BITMAP, CF_ENHMETAFILE) 'Check if the clipboard contains the required format hPicAvail = IsClipboardFormatAvailable(lPicType) If hPicAvail <> 0 Then h = OpenClipboard(0&) 'Get access to the clipboard If h > 0 Then hPtr = GetClipboardData(lPicType) 'Get a handle to the image data 'Create our own copy of the image on the clipboard, in the appropriate format. If lPicType = CF_BITMAP Then hCopy = CopyImage(hPtr, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG) Else hCopy = CopyEnhMetaFile(hPtr, vbNullString) End If h = CloseClipboard 'Release the clipboard to other programs 'If we got a handle to the image, convert it into a Picture object and return it If hPtr <> 0 Then Set PastePicture = CreatePicture(hCopy, 0, lPicType) End If End If End Function
Private Function CreatePicture(ByVal hPic As Long, ByVal hPal As Long, ByVal lPicType) As IPicture Dim r As Long, uPicInfo As uPicDesc, IID_IDispatch As GUID, IPic As IPicture ' Create the Interface GUID (for the IPicture interface) With IID_IDispatch .Data1 = &H7BF80980 .Data2 = &HBF32 .Data3 = &H101A .Data4(0) = &H8B .Data4(1) = &HBB .Data4(2) = &H0 .Data4(3) = &HAA .Data4(4) = &H0 .Data4(5) = &H30 .Data4(6) = &HC .Data4(7) = &HAB End With ' Fill uPicInfo with necessary parts. With uPicInfo .Size = Len(uPicInfo) ' Length of structure. .Type = IIf(lPicType = CF_BITMAP, PICTYPE_BITMAP, PICTYPE_ENHMETAFILE) ' Type of Picture .hPic = hPic ' Handle to image. .hPal = IIf(lPicType = CF_BITMAP, hPal, 0) ' Handle to palette (if bitmap). End With ' Create the Picture object. r = OleCreatePictureIndirect(uPicInfo, IID_IDispatch, True, IPic) ' If an error occured, show the description If r <> 0 Then Debug.Print "Create Picture Error" ' & fnOLEError(r) 'Requires a reference to the "OLE Automation" type library Set CreatePicture = IPic ' Return the new Picture object. End Function
Utilisation:
Dim s As Shape Set s = ThisWorkbook.Sheets("Sheet1").Shapes.Item("Shape1") s.CopyPicture Format:=xlBitmap ImgMap.Picture = PastePicture(xlBitmap) Set s = Nothing
[size=1]Vous pensiez que votre souris ne servait à rien? > [url="http://www.marmotproject.net"]Le Projet Marmotte[/url]! Comparez la distance que vous faites avec les autres internautes :)[/size=1]
|
|
Cette discussion est classée dans : objet, excel, image, controle, shape
Répondre à ce message
Sujets en rapport avec ce message
.Net, Excel et VBA -> utilisation de l'objet Shape [ par Sharkeye ]
Bonjour, Dans le cadre d'un projet, je dois créer et gérer un classeur Excel contenant des objets graphiques (mais pas des graphiques à proprement pa
Problème de controle de couleur dans excel lors de l'insertion d'un caractere spécial [ par fanjio ]
Bonjour à tous, et merci à ceux qui ont répondu à ma derniere sollicitation.Celle qui vient s'en rapproche.Alors mon probleme est que je souhaite cont
Sauver un shape en .jpg... Possible ? [ par Mosquito ]
Bonjour,J'ai hésité entre la catégorie VBA & Graphique pour ce thread. Vous allez comprendre.J'ai Office 2003. Lorsque j'importe une page web dans u
Encore et toujours mon pote Excel [ par Baguauda ]
Bonjour,ce coup si c'est moin grave que toute mes intervention precentes.J'ai une image sous excel et j'aimerais quel reste toujours docker en haut a
Objet excel dans un formulaire Access 2000 [ par PtitGrumo ]
Bonjour,Je souhaiterai avoir un objet Excel dans un formulaire et afficher mes données dans les différente cellule!Quel objet ajouter ou plutot ou le
faire déplasser un controle picture par la sourie et le mettre sur une autre image [ par abdi02 ]
comment faire pour que je puisse deplasser uncontrole sur un fram dans une faille et de le maittre sur une point fixe est connu par ses coordonnés ?ai
Encore et toujours Excel. Probleme d'Image [ par Baguauda ]
Bonjour,Arf pourquoi les macro sous Excel sont tel si ch***te a realiser.Bon le probleme est extrement simple, mais j'arrive pas a le traduire dans Ex
Image Change En Click [ par YaMO_o ]
Bonjour a tous, J'ai rechercher un peut dans l'aide de Visual Basic 6.0 et puis j'ai trouver ceci : L'objet Picture est similaire sous certains aspect
Scrollbar objet OLE excel [ par VARACH ]
bonjour , j ai cree un objet Ole qui lit un fichier excel mais je n arrive pas a creer de scrollbar pour faire defiler les lignes..je n ai rien trouve
Insérer une image dans une feuille excel [VBA] [ par Charles Racaud ]
Bonjour, Quelle est la fonction en VBA sous Excel pour insérer une image dans une feuille de calcule ou l'image source est l'image d'un contr
Livres en rapport
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|