XL 2013 Mettre en plein écran un userform comportant des images

rofou13

XLDnaute Nouveau
Bonjour,

J'ai cherché comment mettre un userform en plein écran quel que soit l'ordinateur de l'utilisateur pour ça il n'y a pas de soucis j'ai trouvé le code suivant qui fonctionne très bien :

Private Sub UserForm_Initialize()

ratiow = Application.Width / Me.Width
ratioh = Application.Height / Me.Height
Me.Left = 0
Me.Top = 0
Me.Width = Application.Width
Me.Height = Application.Height
For Each Ctl In Me.Controls
Ctl.Left = Ctl.Left * ratiow
Ctl.Top = Ctl.Top * ratioh
Ctl.Width = Ctl.Width * ratiow
Ctl.Height = Ctl.Height * ratioh
Ctl.FontSize = Ctl.FontSize * ratioh
Next
End Sub


Le problème c'est que dès que je rajoute une image, il m'indique un code erreur d'exécution 438 Propriété ou méthode non gérée par cet objet. J'ai vérifié que c'était bien le fait de mettre en plein écran l'userform qui bloquait.

Je vous demande donc si vous avez une modification à apporter à ce code pour que cela fonctionne ou une autre méthode de faire ?

J'ai essayé de bidouiller mais sans succès !

Merci beaucoup pour vos futurs réponses !

Bien cordialement,
Romain.

PS : Voici le fichier sur lequel je travaille si cela peut vous aider!
 

Pièces jointes

  • Projet-recherche.xlsm
    267.9 KB · Affichages: 44

néné06

XLDnaute Accro
Re : Mettre en plein écran un userform comportant des images

Bonjour,

Le contrôl "Image" n'a pas la propriété "Font.Size" d'ou l'erreur!

Essayes ceci!

For Each ctl In Me.Controls
ctl.Left = ctl.Left * ratiow
ctl.Top = ctl.Top * ratioh
ctl.Width = ctl.Width * ratiow
ctl.Height = ctl.Height * ratioh
If Left(ctl.Name, 3) <> "Ima" Then
ctl.FontSize = ctl.FontSize * ratioh
End If
Next

A+

René
 

rofou13

XLDnaute Nouveau
Re : Mettre en plein écran un userform comportant des images

Bonjour néné06,

Merci de ta réponse en effet je n'avais pas fais attention qu'une image n'avait pas cette propriété.

J'ai essayé ton code mais le problème persiste. J'ai essayé en changeant le nom sur la condition "si" en mettant vu que je n'ai qu'une image :

For Each Ctl In Me.Controls
Ctl.Left = Ctl.Left * ratiow
Ctl.Top = Ctl.Top * ratioh
Ctl.Width = Ctl.Width * ratiow
Ctl.Height = Ctl.Height * ratioh
If Ctl.Name <> "Image1" Then
Ctl.FontSize = Ctl.FontSize * ratioh
End If
Next

Je comprends ce que tu essayes de faire mais je ne comprends pas pourquoi cela ne fonctionne pas :s

Si tu peux m'aider encore une fois je t'en remercie grandement !

Bien cordialement,
Romain
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Mettre en plein écran un userform comportant des images

Bonjour rofou13, néné06,

Un essai avec ce code ?:
VB:
Private Sub UserForm_Initialize()
With Application
  .WindowState = xlMaximized
  Zoom = 100 * IIf(.Width / Width <= .Height / Height, .Width / Width, .Height / Height)
  Height = .Height - 15: Width = .Width - 15
  Top = (.Height - Height) / 2: Left = (.Width - Width) / 2
End With
End Sub
 

Pièces jointes

  • rofou13 Projet-recherche v1.xlsm
    297.6 KB · Affichages: 49
Dernière édition:

Discussions similaires

Réponses
2
Affichages
830

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA