Afficher un userform en plein écran et ajuster les controls - VB/VBA/VBS - Programmation
Marsh Posté le 07-01-2011 à 10:31:18
Bien j'ai trouvé ma réponse
pour ceux que ça intéresse :
Private Sub Userform_Initialize()
Dim ctl As Control
Dim ratow As String
Dim ratioh As String
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
NextEnd Sub
Marsh Posté le 07-01-2011 à 11:04:40
Oups!
J'ai une nouvelle question, le code fonctionne très bien mais j'ai un problème :
Excel me fait une erreur d'execution "438", erreur de methode ou proprité non géré par cet objet! :-( en fait, j'initialise mon application avec Userform1.Combobox.Clear et quand VBA passe dessus il initialise le Userform1 ou 2... et n'avance plus dans le code en affichant ce message d'erreur!! Comment faire? je suis obligé d'initialiser.
Quelqu'un peut m'aider?
Merci.
Marsh Posté le 11-01-2011 à 13:56:11
>>j'initialise mon application avec Userform1.Combobox.Clear
et avec Userform1.Combobox1.Clear?
Marsh Posté le 28-02-2015 à 10:39:59
aidevba a écrit : |
Bonjour,
le Pb vient de ctl.FontSize = ctl.FontSize * ratioh
a remplacer par : ctl.Font.Size = ctl.Font.Size * ratioh
Un peu tard certainement, mis le code vient de m'aider
Cdt
Marsh Posté le 13-08-2019 à 15:30:43
Bonjour,
j'ai également la même problématique soit comment passer un Userform en plein écran (à ajuster donc selon les écrans des utilisateurs).
Mon Userform contient une image avec des labels et quand j'applique ce code sur une macro qui ouvre mon Userform
Sub Bouton2_Cliquer()
Dim ctl As Control
Dim ratow As String
Dim ratioh As String
ratiow = Application.Width / UserForm1.Width
ratioh = Application.Height / UserForm1.Height
UserForm1.Left = 0
UserForm1.Top = 0
UserForm1.Width = Application.Width
UserForm1.Height = Application.Height
UserForm1.Show
End Sub
J'ai bien mon userform qui passe en plein écran mais mes labels ou image dessus reste à leur taille et place d'origine.
merci
Marsh Posté le 07-01-2011 à 10:03:22
Bonjour le forum,
Voilà j'ai une question à propos des Userform. Voilà j'ai créer une petite application en vba sur Excel avec 4 userforms. Le problème c'est que mon application va servir à différents utilisteurs qui n'ont pas la même taille d'écran.
Je voudrai mettre mon Userform en plein écran et ajuster tout mes controls en fonction de la taille du Userform.
J'ai commencer un code mais je n'arrive pas à ajuster mes controls quelqu'un pourrait m'aider en me donnant une piste SVP?
Voila mon code (feuille1 étant le nom de mon userform)
Private Sub UserForm_Initialize()
Dim oldH As Double, oldL As Double, appH As Double, appL As Double
Dim echH As Long, echV As Long
Dim ctr As Control
feuille1.Width = Application.Width
feuille1.Height = Application.Height
oldH = feuille1.Height: oldL = feuille1.Width
appH = Application.Height - 5: appL = Application.Width - 10
echH = appL / oldL: echV = appH / oldH
feuille1.Height = appH
feuille1.Width = appL
For Each ctr In feuille1.Controls
ctr.Left = echH * ctr.Left
ctr.Width = echH * ctr.Width
ctr.Top = echV * ctr.Top
Next ctr
End Sub