passer un userform en variable

passer un userform en variable - VB/VBA/VBS - Programmation

Marsh Posté le 07-01-2011 à 13:51:49    

Bonjour le forum,
 
J'ai posté un message ce matin à propos des userforms, si quelqu'un en a besoin...
 
J'ai une nouvelle question, comment fait on pour passer un userform en tant que variable à une procédure?
 
Voilà mon code:
 
Voici ma procédure qui met les userform en plein écran et qui ajuste les controls du userform
 
Sub taille_USF(ByVal oUF As UserForm)
 
Dim ctl As Control
Dim ratow As String
Dim ratioh As String
 
ratiow = Application.Width / oUF.Width
ratioh = Application.Height / oUF.Height
oUF.Left = 0
oUF.Top = 0
oUF.Width = Application.Width
oUF.Height = Application.Height
 
For Each ctl In oUF.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
 
Voici mon appel de ma procédure mais j'ai une erreur de type "438" Propriété ou methode non géré par l'objet
 
call taille_USF (Userform1)
 
Quelqu'un à une idée SVP?

Reply

Marsh Posté le 07-01-2011 à 13:51:49   

Reply

Marsh Posté le 07-01-2011 à 16:48:19    

aidevba a écrit :

Bonjour le forum,
 
J'ai posté un message ce matin à propos des userforms, si quelqu'un en a besoin...
 
J'ai une nouvelle question, comment fait on pour passer un userform en tant que variable à une procédure?
 
Voilà mon code:
 
Voici ma procédure qui met les userform en plein écran et qui ajuste les controls du userform
 
Sub taille_USF(ByVal oUF As UserForm)
 
Dim ctl As Control
Dim ratow As String
Dim ratioh As String
 
ratiow = Application.Width / oUF.Width
ratioh = Application.Height / oUF.Height
oUF.Left = 0
oUF.Top = 0
oUF.Width = Application.Width
oUF.Height = Application.Height
 
For Each ctl In oUF.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
 
Voici mon appel de ma procédure mais j'ai une erreur de type "438" Propriété ou methode non géré par l'objet
 
call taille_USF (Userform1)
 
Quelqu'un à une idée SVP?


 
Un userform c'est un objet... normalement fonctionner avec "byval" me parait tordu...
Sub taille_USF(ByRef oUF As UserForm)
 
 
a première vue la procédure a l'air correcte...
sauf que le type d'objet UserForm n'as pas l'air de gérer "Left"; "Top", etc...
 
et je ne sais pas pas ou tu travaille (Excel ? Access ? etc) ...
 

Reply

Marsh Posté le 07-01-2011 à 19:14:58    

Salut, voir peut-être http://support.microsoft.com/kb/157609/en-us et http://silkyroad.developpez.com/VBA/UserForm/


Message édité par kiki29 le 07-01-2011 à 19:27:52
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed