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: 16

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:

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 !!!!
1709386459974.png


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
 

Discussions similaires

Statistiques des forums

Discussions
313 197
Messages
2 096 121
Membres
106 502
dernier inscrit
Jc_dan