Bonjour
Je met un logo sur un Userform, seulement il y a un carré blanc tout autour que je n'arrive pas à faire disparaitre
Pouvez-vous m'indiquer comment je dois procéder Svp
En vous remerciant
Bonjour
Je met un logo sur un Userform, seulement il y a un carré blanc tout autour que je n'arrive pas à faire disparaitre
Pouvez-vous m'indiquer comment je dois procéder Svp
En vous remerciant
Bonjour
Il est bien évidemment possible (mais en utilisant des fonctions de l'Api de Windows), de modifier l'image avant de l'insérer, ce qui alourdirait considérablement.
Il est bien plus sage de choisir (ou faire) des logos "transparents" à insérer.
Bonjour unparia
Merci de me répondre
A l'origine mon image a le fond transparent
Je fais un cadre avec le bouton Image de la Boite à outils et j'insère cette image à partir de Picture mais le fond est blanc et c'est cela que je ne voudrais pas
J'ai vainement cherché sur le net sans trouver, je dois m'y prendre mal
En te remerciant
Bonjour,
Pour gérer facilement la transparence d'une image sur un UserForm, il faut choisir un format d'image transparente accepté. Le format png n'étant pas toléré sur un Userform, une image de ce format est convertie en jpg et donc pert sa transparence. Il te faut donc te contenter du format gif (toléré par l'Userform et gérant la transparence) avec ce que cela induit en perte de qualité. La solution proposée par Jacques (salutations) avec api existe, mais est plus complexe...
Bonjour,
Je te répond en tant qu'infographiste, Quoi que tu fasses, Vba ne prend pas en charge les fichiers Png, càd avec transparence.
La seule solution est de mettre ton Userform en fond blanc et d'y intégrer ton image au format jpg.
pijaku : Mon image est en .gif (Logo.gif)
Lorsque j'appelle l'image dans Picture il se met un fond blanc ce que je ne voudrai pas
graphikris : justement, je ne veux pas de fond blanc
Si ton logo est dans un contrôle image, la propriété backstyle de celui ce soit être réglée sur fmBackStyleTransparent.....
EDIT : @Jacques : on s'est croisé sur ce coup là...
EDIT 2 : Jean, tu trouveras ICI le zip d'un jeu créé en 2012 avec un ami (), dans lequel nous avons posé des images transparentes sur un UserForm pour le design....
La propriété du contrôle image est bien en transparent
Pièce jointe 374809
C'est ce que j'avais pensé un moment et pourtant elle est bien transparente
Pièce jointe 374813
Bonjour a tous
effectivement la transparence est gerée mais pas la semie transparence sur les controls image ou .picture du userform
je rapelle tout de meme que aussi bien pour le transport( question de poids du fichier ) que pour le resultat le format ".wmf" est accepté par les controls image est transparent
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Quel que soit le format du fichier image : une fois "embarqué" par VBA, il est un tableau de dibits (même poids qu'un .bmp, donc)![]()
re
si ca interesse quelqu'un
voici une astuce ultra simple pour mettre un .png dans un control userform et garder les partie transparente (attention!!!! pas semie transparentes)
je peut meme rendre certaine partie d'une image jpg ou bmp transparente avec le meme genre d'astuce
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Declare Function CreateCheminTemp Lib "Kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function GetClipboardData Lib "user32" (ByVal uFormat As Long) As Long Private Declare Function CopyEnhMetaFileA Lib "gdi32" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long Private Declare Function DeleteEnhMetaFile Lib "gdi32" (ByVal hDC As Long) As Long Private Sub CommandButton1_Click() Dim ImgTemp As String ImgTemp = Space(160) CreateCheminTemp Environ("TMP"), "IMG", 0, ImgTemp ImgTemp = Trim(ImgTemp) 'le chemin peut etre ou on veut exemple environ("userprofile")&"\DeskTop\IMGPNG.wmf" With ActiveSheet Set pict = .Pictures.Insert("C:\Users\polux\Desktop\logodejean30PNGtransparent.png") pict.Copy: End With OpenClipboard 0 DeleteEnhMetaFile CopyEnhMetaFileA(GetClipboardData(14), ImgTemp) 'créé le fichier wmf (temp) dans le dossier TEMP de windows CloseClipboard On Error Resume Next With Me.Image1 .Picture = LoadPicture(ImgTemp) .BackStyle = 0 .BorderStyle = 0 .Move .Left, .Top, pict.Width, pict.Height End With Kill ImgTemp pict.Delete End Sub
la meme image en jpg a la quelle on eneleve tout ce qui est blanc dans le userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Private Declare Function CreateCheminTemp Lib "Kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function GetClipboardData Lib "user32" (ByVal uFormat As Long) As Long Private Declare Function CopyEnhMetaFileA Lib "gdi32" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long Private Declare Function DeleteEnhMetaFile Lib "gdi32" (ByVal hDC As Long) As Long Private Sub CommandButton1_Click() Dim ImgTemp As String ImgTemp = Space(160) CreateCheminTemp Environ("TMP"), "IMG", 0, ImgTemp ImgTemp = Trim(ImgTemp) 'le chemin peut etre ou on veut exemple environ("userprofile")&"\DeskTop\IMGPNG.wmf" With ActiveSheet Set pict = .Pictures.Insert("C:\Users\polux\Desktop\logodejean30JPGpastransparent.jpg") couleur = vbWhite With .Shapes(pict.Name): With .PictureFormat: .TransparentBackground = True: .TransparencyColor = couleur: End With: .Fill.Visible = False: End With pict.Copy: End With OpenClipboard 0 DeleteEnhMetaFile CopyEnhMetaFileA(GetClipboardData(14), ImgTemp) 'créé le fichier wmf (temp) dans le dossier TEMP de windows CloseClipboard On Error Resume Next With Me.Image1 .Picture = LoadPicture(ImgTemp) .BackStyle = 0 .BorderStyle = 0 .Move .Left, .Top, pict.Width, pict.Height End With Kill ImgTemp pict.Delete End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour,
Utilises la propriété image d'un label.
Partager