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