Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1462 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Afficher un userform en plein écran et ajuster les controls

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher un userform en plein écran et ajuster les controls

n°2047094
aidevba
Posté le 07-01-2011 à 10:03:22  profilanswer
 

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

mood
Publicité
Posté le 07-01-2011 à 10:03:22  profilanswer
 

n°2047118
aidevba
Posté le 07-01-2011 à 10:31:18  profilanswer
 

Bien j'ai trouvé ma réponse  :bounce:  
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

n°2047144
aidevba
Posté le 07-01-2011 à 11:04:40  profilanswer
 

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.

n°2048137
mcdx
Posté le 11-01-2011 à 13:56:11  profilanswer
 

>>j'initialise mon application avec Userform1.Combobox.Clear
et avec Userform1.Combobox1.Clear?

n°2251970
jebi
Posté le 28-02-2015 à 10:39:59  profilanswer
 

aidevba a écrit :


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


 
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


---------------
Jebi
n°2337860
catkiller
Posté le 13-08-2019 à 15:30:43  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Afficher un userform en plein écran et ajuster les controls

 

Sujets relatifs
afficher un lien dans un cadre avec dreamweaver[RESOLU]UTF-8 vers ISO-8859-1 AJAX - XMLHTTP
[C] afficher un caractère grec[java] Afficher une BufferedImage dans un Jframe ?
Comment récupérer et afficher les données d'un formulaire htmlSAUVEZ MOI AVEC JAVA, changer de fond écran et labels
Afficher une image :-(afficher une ligne d'un fichier .txt en C pur
Afficher le contenu sans recharger la page[Résolu] afficher répertoire windows en web
Plus de sujets relatifs à : Afficher un userform en plein écran et ajuster les controls


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR