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

XL 2013 Insérer dans un USF une image qui est dans une feuille

erics83

XLDnaute Impliqué
Bonjour,

Je cherche à insérer dans un userform une image. J'ai vu certains tutos ou exemples, mais impossible de le reproduire....ou alors, j'ai fait une fausse manip que je ne comprends pas...ou j'ai mal "reproduit" un code....et je n'ai pas compris comment JB manipulait les contrôle image dans son fichier "controle image.xls), donc...suis un peu "perdu", car j'ai beaucoup d'exemple avec des images enregistrées dans le disk dur, mais pas d'exemple (ou pas trouvé) sur des images dans le même fichier...
Pour faire simple (=une fois que j'aurais compris le code, je pourrais le reproduire), lorsque l'USF s'ouvre, il doit afficher l'image qui est en Feuil2....

Merci pour votre aide,
 

Pièces jointes

  • Classeurtestimage.xlsm
    174.7 KB · Affichages: 18
Dernière édition:

Dudu2

XLDnaute Barbatruc
d'autre part je vois que tu paste d'abords sur feuille (c'est inutile et je peux t'expliquer pourquoi)
Ok, explique, si je peux gagner sur cette étape.
Mais je crois que si je bypass cette étape avec un Range.CopyPicture, je ne peux plus calculer le Ratio.
A voir...
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Alors, en effet, j'ai pu supprimer l'étape de Paste de l'image sur la feuille.
Il a fallu ajuster 2/3 trucs comme le calcul de la taille initiale de l'image basée maintenant sur le Range, mais ça marche.
Merci pour l'info
 

Pièces jointes

  • RangeToImageToFileToUserForm.xlsm
    40.5 KB · Affichages: 6
Dernière édition:

Dudu2

XLDnaute Barbatruc
Comme confirmé en privé, il y a eu méprise.
De toutes façons, je vais prendre du recul et ne plus mettre mon grain de sel dans les sujets.
Il y a suffisamment d'experts pour répondre aux questions et pour l'instant mes posts ne suscitent rien de positif. Bonne continuation à tous, @+.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
bonsoir @TooFatBoy
comme je l'ai codé dans le POST#12 les dimensions sont connues
avec quoi que ce soit comme object
ObjecOrRange.CopyPicture
Set chart1 = ObjecOrRange.Parent.ChartObjects.Add(0, 0, 0, 0).Chart
With chart1
With .Parent
.Width = ObjecOrRange.Width: .Height = ObjecOrRange.Height: .Left = ObjecOrRange.Width + 20:

mais honnêtement comme je l'ai dis un post plus tot le format WMF offre une qualité bien meilleure
et permet aussi la transparence (je parle de la transparence complète)
copypicture copie n'importe quoi en WMF en mémoire

la sauvegarde avec l'export par un graphique réduit la qualité
et on constatera même que selon l'extension de l'export la qualité n'est pas la même

et c'est moins rapide qu'avec l'api


ici et ailleurs on trouve des codes avec graphique exportant une plage ou autre copié en jpg,png,gif,et même Tiif
quand on regarde a la lecture en binaire l'image obtenue ,on a bien les indicatif du jpg en entête mais le reste des bits ne correspondent pas tout a fait au jpg ni au gif c'est une sorte hybride entre le jpg et le gif mais en aucun cas png
 

patricktoulon

XLDnaute Barbatruc
re
tiens j'ai retrouvé la demo de 2018
a gauche WMF a droite pseudo jpg avec l'export graphique

et oui!!! les cellules qui ont un interior.color xlnone sont réellement transparentes

dans l'exemple qui suit je switch export graphique et wmf
je sais pas si la capture va bien rendre mais à l’écran les détails des poils du koala sont plus flous avec l'export graphique
 

Dudu2

XLDnaute Barbatruc
Bonjour à tous,
Allez, un ptit dernier avant de prendre la route...

Pour gérer la transparence, pas besoin d'une usine à gaz avec des ExecuteExcel4Macro dont on sait maintenant que plus on les exécute plus ils ralentissent.
 

Pièces jointes

  • ObjectToImageToFileToUserForm.xlsm
    383.9 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
d'ailleurs ca confirme ce que je dis dans la ressource
cette méthode déconne à plein tube
mis apart la qualitée dégradée qui est ma fois selon l'utilité pas très grave
on a aussi la propriété ou la convertion l'ors de l'export qui est fausse
par exemple ici au lieu de masquer le fill.visible au contraire je le laisse visible mais transparent
VB:
 .Chart.ChartArea.Fill.Visible = msoTrue
        .Chart.ChartArea.Fill.Solid
        .Chart.ChartArea.Format.Fill.Transparency = 1
ce n'est pas pour rien que je ne l'utilise pas

je parlais de qualité voilà ce que l'on obtient quand on insert dans la feuille une capture précédemment faite avec un graph
le visuel est plus que parlant
 

Discussions similaires

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