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

  • Initiateur de la discussion Initiateur de la discussion Horusbk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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. 😕

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 🙄 ).

Merci pour votre aide.
Baptiste
 

Pièces jointes

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

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
696
Réponses
2
Affichages
568
Réponses
2
Affichages
2 K
Retour