Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 copie image userform to worksheet with api ( le jpg ne fonctionne plus )

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
je fait un peu de ménage dans mes élucubrations VBA-ISTIQUES
et je me rends compte que sur 2013 ca ne fonctionne plus
aujourd'hui c'est l'inverse d'un nombre innombrables de ce qui est demandé habituellement

en effet dans cet exercice on va copier l'image contenu dans un userform vers une feuille et non l'inverse
ce fichier avais été réalisé sur 2007 et utilise quelques api win

pour tester je vous ai fait un petit exemple avec un userform dans le quel il y a deux images
l'une est en Wmf et l'autre est un jpg
le wmf fonctionne mais le jpg ne fonctionne plus(l'image est noire)
si vous avez des idées je suis preneur
 

Pièces jointes

  • 1 Userform.controls.picticture To sheets.picture.xlsm
    131.1 KB · Affichages: 15

herve62

XLDnaute Barbatruc
Supporter XLD
Salut Patrick
Oui ça merdoie !!!! même en 2010 !
Par contre il me reste de mon grenier une appli que j'avais faite pour un pt'it gars qui entre autre, aidait à replacer des chiens , je te laisse l'appli entière : tu vas dans la liste de diffusion > clic dans une cellule vide en A > Usf ( tu mets au moins le nom ) , insère une photo (jpg) quand tu as validé elle se transfère en col B qui s'ajuste

C'est juste pour une idée pour le code ... au cas ou ??
 

job75

XLDnaute Barbatruc
Bonsoir Patrick, le fil,

Chez moi sur Win 11 Excel 2019 64 bits les 2 images sont bien affichées dans l'USF.

Mais bug "Incompatibilité de type" sur "SetClipboardData" quand je clique sur les boutons.

A+
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
Bonsoir job75
Pour être plus précis,mais je pense que le problème n'est pas a ce niveau ,mais les deux images sont affichées dans le userform a l'ouverture .
Jean marie
 

herve62

XLDnaute Barbatruc
Supporter XLD
Oui le logo passe mais pour l'autre ,J'obtiens comme toi une image noire!
Non j'ai comme à chaque fois qu'une image n'a pas été prise en compte dans le fichier > Impossible d'afficher .....etc ; donc un rectangle une petite croix rouge et ce texte
En fait on a ça aussi dans des mail sauf que l'on peut cliquer pour "telecharger les images"
comme celui de mon exemple ou il n'y a pas les images des chiens du fichier de mon pote !
 

patricktoulon

XLDnaute Barbatruc
re
re bonsoir à tous
@job75 bon il faut que je vérifie les déclarations api pour les version supp avec mon lexique
@herve62 ok je vois ça m'est arrivé a moi aussi
@TooFatBoy ben c'est justement ce que j'essaie de déterminer

il fonctionnait parfaitement bien sur W7 64 office 2007 32 bits
comme la gestion du clipboard a changé sur les versions 2019 à 365(plusieurs adresses) j'ai bien peur de devoir batailler pour trouver
et de devoir retester toute les api clipboard
j'ai pourtant un lexique déjà bien rempli avec les déclarations 64 et je n'ai rien trouvé a ce sujet
je poursuis mes recherches
si vous avez des news faites passer
 

Simply

XLDnaute Occasionnel
Bonjour,

Simple avec..

VB:
Option Explicit

Private Sub CommandButton1_Click()
    Dim shapeImage As OLEObject
    
    With Worksheets("Foglio1")
        Set shapeImage = .OLEObjects.Add(classtype:="Forms.image.1", _
        Left:=.Cells(2, "B").Left, _
        Top:=.Cells(2, "B").Top, _
        Width:=Me.Image1.Width, _
        Height:=Me.Image1.Height)
    End With
    
    With shapeImage
        .Object.PictureSizeMode = 3
        .Object.Picture = Me.Image1.Picture
    End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
Bonjour simply
oui je connais ça mais c'est pas le sujet
toi tu parle d oleobject.object.picture =userformy.imagex.picture

d'ailleurs pour une picturesur feuille , il y a la solution du fichier temporaire avec savepicture
comme ici par exemple
ou encore là

non le sujet c'est bien de refaire fonctionner les api comme il se doit
 

fanch55

XLDnaute Barbatruc
Salut à tous, [ Excel 2021/W11 ]
Pour faire avancer le schmilbili... :

Par l'userform ==> Imagenoire
Par exploitation du presse-papier alimenté ==> image conforme !!!!


Un autre problème qui n'a rien à voir avec le paste : je n'arrive plus à vider le clipboard Office par Vba !!!
 
Dernière édition:

Lu76Fer

XLDnaute Occasionnel
Bonsoir Patrick, le fil,

Chez moi sur Win 11 Excel 2019 64 bits les 2 images sont bien affichées dans l'USF.

Mais bug "Incompatibilité de type" sur "SetClipboardData" quand je clique sur les boutons.

A+
Bonjour Job75,
Pour info cela ne marche pas non plus sur la version Excel 16 64Bits.
Il faut juste modifier la déclaration dans pict_on_form_to_pict_on_sheet :
Dim IPic As IPictureDisp, hCopy&
Par :
Dim IPic As IPictureDisp, hCopy As LongPtr
Par contre, c'est toujours NOIR
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour à tous
bien vu le test @fanch55
au moins on vois bien que l'image est bien dans le clipboard
pour info je viens de tester et aujourd'hui voila ce qui me sort le paste 'une image canal+


donc ne n'est pas le setclipboardData qui est à remettre en cause
on avance
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…