Ah bon!!Si vous voulez une Frame transparente, oubliez cela n'existe pas .
Même les subterfuges pour y palier ne fonctionnent pas ou pas correctement ou pas dans tous les cas
Bonsoir
@fanch55
Ah bon!!
méthode api 1 par les macro 4
Regarde la pièce jointe 1163886
et j'en ai d'autres en réserve si tu veux
et ça fonctionne très bien 32/64 bits
méthode 2
l'astuce la plus simple et la plus connue qui (SIMULE!!) la transparence
c'est une picture dans la frame de la même taille que le inside du userform
le left et top en négatif simetriquement au left et pop positif de la frame
avec les api déclarées je vais même plus loin la frame transparente et avec les angles arrondis
mais celle là il faut que je prenne le temps de la refaire en macro 4 (pour le fun )
Bonsoir merci pour une réponse si rapide.Bonsoir
@fanch55
Ah bon!!
méthode api 1 par les macro 4
Regarde la pièce jointe 1163886
et j'en ai d'autres en réserve si tu veux
et ça fonctionne très bien 32/64 bits
méthode 2
l'astuce la plus simple et la plus connue qui (SIMULE!!) la transparence
c'est une picture dans la frame de la même taille que le inside du userform
le left et top en négatif simetriquement au left et pop positif de la frame
avec les api déclarées je vais même plus loin la frame transparente et avec les angles arrondis
mais celle là il faut que je prenne le temps de la refaire en macro 4 (pour le fun )
rivate Sub CommandButton1_Click()
'load une image pour le fond de l'userform
fichier = Application.GetOpenFilename("Text Files (*.jpg;*.gif;*.bmp;*.wmf), *.jpg;*.gif;*.bmp;*.wmf", 1, "ouvrir une image")
If fichier = False Then Exit Sub
Me.Picture = LoadPicture(fichier)
End Sub
Private Sub CommandButton2_Click()
'on met la copie bmp du fond de l'userform dans un nouveau control image dynamique
'l'image aura la meme taille que l'interieur du userform
'la meme propriété d'affichage
' reste plus qu'a la depacer de exactement le left et le top de la frame mais !!!! en negatif
'comme c'est le dernier controls ajouté on le met en arriare plan "zorder 1"
Set img = Me.Frame1.Controls.Add("forms.Image.1", "fondframe")
With img
.Move 0 - Frame1.Left - 1, 0 - Frame1.Top - 1, Me.InsideWidth, Me.InsideHeight
.Picture = Me.Picture
.PictureSizeMode = Me.PictureSizeMode
.ZOrder 1
End With
End Sub
Private Sub CommandButton1_Click()
'load une image pour le fond de l'userform
fichier = Application.GetOpenFilename("Text Files (*.jpg;*.gif;*.bmp;*.wmf), *.jpg;*.gif;*.bmp;*.wmf", 1, "ouvrir une image")
If fichier = False Then Exit Sub
Me.Picture = LoadPicture(fichier)
End Sub
Private Sub CommandButton2_Click()
'on met la copie bmp du fond de l'userform dans un nouveau control image dynamique
'l'image aura la meme taille que l'interieur du userform
'la meme propriété d'affichage
' reste plus qu'a la depacer de exactement le left et le top de la frame mais !!!! en negatif
'comme c'est le dernier controls ajouté on le met en arriare plan "zorder 1"
If Frame1.Caption <> "" Then l = 2: t = 6 Else l = 1: t = 1
Set img = Me.Frame1.Controls.Add("forms.Image.1", "fondframe")
With img
.Move 0 - Frame1.Left - l, 0 - Frame1.Top - t, Me.InsideWidth, Me.InsideHeight
.Picture = Me.Picture
.PictureSizeMode = Me.PictureSizeMode
.ZOrder 1
End With
End Sub
Private Sub CommandButton5_Click()
Me.Frame1.Controls.Remove "fondframe"
End Sub
Pas vraiment rien que la première ligne du code ne veut pas passer (tout juste après load une image pour le fond de l'userform)démonstration
Regarde la pièce jointe 1163890
c'est tout bète
VB:rivate Sub CommandButton1_Click() 'load une image pour le fond de l'userform fichier = Application.GetOpenFilename("Text Files (*.jpg;*.gif;*.bmp;*.wmf), *.jpg;*.gif;*.bmp;*.wmf", 1, "ouvrir une image") If fichier = False Then Exit Sub Me.Picture = LoadPicture(fichier) End Sub Private Sub CommandButton2_Click() 'on met la copie bmp du fond de l'userform dans un nouveau control image dynamique 'l'image aura la meme taille que l'interieur du userform 'la meme propriété d'affichage ' reste plus qu'a la depacer de exactement le left et le top de la frame mais !!!! en negatif 'comme c'est le dernier controls ajouté on le met en arriare plan "zorder 1" Set img = Me.Frame1.Controls.Add("forms.Image.1", "fondframe") With img .Move 0 - Frame1.Left - 1, 0 - Frame1.Top - 1, Me.InsideWidth, Me.InsideHeight .Picture = Me.Picture .PictureSizeMode = Me.PictureSizeMode .ZOrder 1 End With End Sub
et voilà on croirait vraiment que ta frame est transparente
c'est simple non ?
voici le fichier sur lequel je voudrai conserver l'arrière plan de l'userform et mettre la frame en transparenceBonjour
si tu a ce genre de problème avec un code aussi simple c'est que tu a un soucis dans ton system
tu peux livrer le fichier dans le quel tu a essayé
et c'est un exemple ; je l'ai fait par un bouton mais tu peux le faire au activate
Bonjour j'ai réessayer et effectivement ça marcheBonjour
si tu a ce genre de problème avec un code aussi simple c'est que tu a un soucis dans ton system
tu peux livrer le fichier dans le quel tu a essayé
et c'est un exemple ; je l'ai fait par un bouton mais tu peux le faire au activate