XL 2010 [VBA] Compatibilité taille d'une image dans un Userform

Horusbk

XLDnaute Junior
Bonjour :)

Je cherche à créer un plan dynamique de mon entreprise via un userform. Je souhaite mettre en arrière-plan une image schématique de l'entreprise puis j'ajouterais par dessus des boutons de contrôle à des endroits stratégiques afin d'accéder aux liens voulus.

J'ai lu sur plusieurs forums que le format de mesure des userforms était le TWIP. J'ai donc voulu faire des conversions en centimètres afin de connaître le format de sortie de mon image et éviter des pertes de qualité lorsque cette dernière sera dans l'userform. Toutefois, un convertissant des twips en cm je me rends compte que les valeurs en cm sont extrêmement petites.... ce qui réduit grandement le format de mon image en sortie. :confused:

Je me permets de me tourner vers le forum pour avoir quelques lumières sur le meilleur moyen d'avoir une image de qualité que je pourrais ajouter en arrière-plan d'un userform tout en respectant l'échelle de l'un et l'autre. Je vous joins mon fichier de conversion au cas où (si mes calculs étaient faux :rolleyes: ).

Merci pour votre aide.
Baptiste
 

Pièces jointes

  • Conversion.xlsm
    15.4 KB · Affichages: 18

patricktoulon

XLDnaute Barbatruc
re
@Dranreb non ca ne marche pas en affichage ctrl+V sur le userform
et ca fonctionne sur le .picture en VBE par ce que dans cette propriété c'est un bitmap de l'image qui s y trouve même quand tu te sert du dialog de la même manière que quand tu insère une image dans un sheets c'est un bitmap sur le sheet pas l'image
 

Dranreb

XLDnaute Barbatruc
es contours de mes formes ne sont pas très jolies.
Peut être vaudrait-il mieux un contrôle image ? On peut changer l'ordre d'affichage pour qu'il soit en arrière plan par rapport à d'autres contrôles.
ctrl+V sur le userform
Qu'est ce que tu appelle sur le Userform ? J'ai dit: en cliquant sur la propriété Picture, mais pas sur le bouton de la flèche pour choisir un fichier, mais à sa gauche, puis Ctrl+V. Et je n'ai pas dit à l’exécution non plus. J'aimerais bien pouvoir le faire à l'exécution !
 

patricktoulon

XLDnaute Barbatruc
re
J'aimerais bien pouvoir le faire à l'exécution !
peut Etre avec un object stdpicture ou Ipicture mais j'en doute

le ctrl+V dans picture dans les propriétés en mode édition insert le tableaux de bit du bitmap contenu en mémoire

avec l'api OleCreatePictureIndirect aussi qui créée un conteneur en mémoire j'ai quelque exemple que je m’était amusé a faire il y a quelque années mais le ctrl+V je suis pas sur
en effet la capture par la touche capture par exemple envoie dans le clipboard le tableau de bit du bitmap (les données de la capture )
hors le .picture quand le userform est activé attend un conteneur jpg,gif,tif,bmp ou le .picture d'un autre

Attention quand même :ne pas oublier que le bitmap peux peser très lourds (plusieurs megas )

@
Horusbk
es contours de mes formes ne sont pas très jolies.

c'est tout simplement impossible qu'il en soit autrement parce que le .picture(image ou userform ou label,etc... n'accepte pas la semie transparence
hors les formes que tu a capturé sont peut etre dessinées avec GDI drow smouse qui lisse les bords(frontieres (plein/vide)) avec la semie transparence
tu a donc dans le userform ou control le bord des motifs de l'images en dents de scie
 
Dernière édition:

Horusbk

XLDnaute Junior
Peut être vaudrait-il mieux un contrôle image ? On peut changer l'ordre d'affichage pour qu'il soit en arrière plan par rapport à d'autres contrôles
Je vais essayer.

avec la semie transparence
tu a donc dans le userform ou control le bord des motifs de l'images en dents de scie
Donc il faudrait mieux que je mette un fond de couleur avant d'exporter mon image ? Normalement je ne devrais plus avoir de problème ?

Cordialement,
Horusbk
 

patricktoulon

XLDnaute Barbatruc
Bonjour.
J'ai fini pas trouver l'incompréhensible boîte noire qui sait le faire proprement en 32 bits.
@Dranreb je pensais que tu connaissais, c'est ce que je voulais dire en parlant de olecreatepictureindirect qui créée un conteneur en mémoire

et de la même manière que l'on peu sauver une image d'un userform on peut le faire avec le conteneur créé en mémoire

creation avec données
R = OleCreatePictureIndirect(uPicInfo, IID_IDispatch, True, IPic)

enregistrement phisique
savepicture ipic,chemin


attention tout de même cet exemple n'est pas son dernier et il comporte une erreur il ne fonctionne pas en bitmap(pas de transparence )
seul le xlpicture(WMF) fonctionne

pour te montrer sur son fichier
et aussi un truc rigolo en fichier2
 

Pièces jointes

  • StephenBullen X.xlsm
    52.7 KB · Affichages: 7
  • demo bouton6 avec wordarts.xls
    100 KB · Affichages: 9

patricktoulon

XLDnaute Barbatruc
RE

j'ai pas sa dernière version sous la main et sache qu'il y a aussi michel pierron je crois aussi qui a repris le flambeau a l’époque je sais plus

mais tiens tu m'a fait fouiller dans mes archives RAR/ZIP

j'avais préparer une démo pour un membre dans un autre forum
je l'ai converti en xlsm

je montre la différence entre xlpicture et xlbitmap et donc ce qu'en fait olecreatepictureindirecte avec le Idispatch et UpicInfo

ps: j'ai ajouté le window capture et le screen capture
demo3.gif
 

Pièces jointes

  • SHAPE PICTURE RANGE TO IMAGE and widows capture and screencapture V2019.xlsm
    998.9 KB · Affichages: 11
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T