Image en fond sur userform

  • Initiateur de la discussion Initiateur de la discussion Orodreth
  • 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 !

O

Orodreth

Guest
Bonjour

j'ai fini mon application sous Excel 97 (pour la gestion des réservations de salle de réunion).

Maintenant, mon directeur m'a demandé de faire la partie esthétique.

Aussi, j'essaye de mettre un fond d'écran sur mes userform mais ...

Sur mon écran de base (utilisateur), j'utilise des frames, et lorsque je met un fond sur l'écran, les frames se mettent dessus, empêchant de voir l'image.

il faudrait que je puisse mettre la propriété backcolor de mes frames et des mes controles (hors togglebutton) en transparent.
Mais là, je dois avouer que j'ignore comment faire ... est-ce que quelqu'un peut m'aider ???
 
Bonjour Orodreth,

A ma connaissance, il est impossible de mettre une 'frame' en transparence. Je crois que c'est le seul élément qui pose problème. Désolé. 🙁

Le seul petit conseil que je peux te donner, c'est de mettre une couleur de fond qui ne choque pas trop avec l'image que tui as mis derrière.

Bonne journée tout de même. B)
 
Rebonjour,

Je viens de voir un truc mais c'est compliqué :
Quand tu sélectionne ta Frame :
Vas sur la propriété Picture et choisis la même image. Essayes ensuite (mais c'est difficle) de rogner un peu l'image jusqu'à obtenir la portion manquante.

C'est un peu du bricolage, mais ça peut marcher !!!

Bonne journée. :woohoo:
 
Rebonjour

Merci pour l'idée de rogner l'image, mais j'ai trop de frame pour faire ça ...


Par contre, j'ai trouvé ce code sur l'un des classeurs d'excellabo:


Private Sub changeFormEffect()
Dim W As Single, H As Single, cl As Long, ct As Long, cw As Long, ch As Long
Dim i As Integer, R As Long, Outer As Long, Inner As Long
' Excel affiche en points mais les API utilisent des pixels
' 1 pixel = 0.75 point / 1 point = 1.33 pixel

hWnd = FindWindow(vbNullString, Me.Caption)
W = Me.Width * 1.33: H = Me.Height * 1.33
If Status = 0 Then
frmRegion = CreateRectRgn(0, 0, W, H)
SetWindowRgn hWnd, frmRegion, True
Exit Sub
End If
frmRegion = CreateRectRgn(0, 0, 0, 0)
' Mesure des encadrements et hauteur de barre de titre
' X = (W - ScaleWidth) / 2 -> Généralement 3
' Y = H - X - ScaleHeight -> Généralement 22
Const X As Single = 3: Const Y As Single = 22
Const RGN_OR = 2 ' Crée l'union de régions combinées
Const RGN_DIFF = 4 ' Crée l'intersection de régions combinées
' Obtention de l'encadrement
If Status = 1 Then
Outer = CreateRectRgn(0, 0, W, H)
Inner = CreateRectRgn(X, Y, W - X, H - X)
CombineRgn frmRegion, Outer, Inner, RGN_DIFF
End If
' Combinaison des regions correpondant aux contrôles
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).Visible Then
ct = Y + (1.33 * Me.Controls(i).Top): ch = ct + (1.33 * Me.Controls(i).Height)
cl = X + (1.33 * Me.Controls(i).Left): cw = cl + (1.33 * Me.Controls(i).Width)
R = CreateRectRgn(cl, ct, cw, ch)
CombineRgn frmRegion, R, frmRegion, RGN_OR
End If
Next
SetWindowRgn hWnd, frmRegion, True
End Sub


est-ce que quelqu'un pourrait me l'expliquer/ m'aider à l'adapter ?

Merci d'avance
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

J
Réponses
19
Affichages
2 K
Jonochka
J
T
Réponses
0
Affichages
2 K
Thibaud123
T
M
Réponses
5
Affichages
32 K
math.
M
Y
Réponses
0
Affichages
1 K
yoyo69
Y
L
Réponses
7
Affichages
11 K
L
Retour