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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Dimension Userform

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Dimension Userform

n°1876313
Rondoudoud​ou
Posté le 22-04-2009 à 15:37:45  profilanswer
 


Bonjour,
 
Suite à mon précédent sujet, j'ai créé un fichier Excel qui doit être utilisé en tant qu'interface graphique.  
Je souhaite que l'userform apparaisse dès le démarrage en plein écran, jusqu'à ce que l'utilisateur clique sur un bouton, ce qui ferme le fichier de démarrage et en lance un autre.
 
J'utilise pour cela le code suivant :  
 
 

Code :
  1. Sub UserForm_Activate()
  2.     With UserForm1
  3.         .StartUpPosition = 3
  4.         .Width = Application.Width
  5.         .Height = Application.Height
  6.         .Left = 0
  7.         .Top = 0
  8.         UserForm1.Show
  9.     End With
  10. End Sub


 
J'ai deux problèmes que je n'arrive pas à résoudre :
 

  • L'Userform prend les dimensions qu'avait Excel lorsqu'il a été fermé la dernière fois, càd que si l'on ferme Excel lorsqu'il ne prend qu'un quart de l'écran, l'userform s'affichera sur un quart d'écran.
  • Lorsque ce problème là ne se pose pas, l'UserForm est parfois trop grand selon l'ordinateur sur lequel on lance le fichier.


J'ai essayé de trouver des solutions à ces deux problèmes mais sans succès, si l'un de vous a une piste, merci d'avance  ;)  

mood
Publicité
Posté le 22-04-2009 à 15:37:45  profilanswer
 

n°1903985
LePhasme
Les Belges domineront le monde
Posté le 09-07-2009 à 11:39:27  profilanswer
 

Un peu de déterrage, avec activewindow.width et activewindow.height ça fonctionne pas mieux ?


---------------
Instagram - Mon PVT en Australie.
n°1903991
Rondoudoud​ou
Posté le 09-07-2009 à 11:43:33  profilanswer
 

Edit : Le jeudi tout est permis.
 
Donc en fait j'ai c/c à l'arrache le code suivant :
 

Code :
  1. '****************************************************************************************
  2. '*                                                                                      *
  3. '*    Procédure pour l'Affichages des différents Userform en mode plein écran.          *
  4. '*                                                                                      *
  5. '****************************************************************************************
  6. Public Type RECT
  7.         Left As Long
  8.         Top As Long
  9.         Right As Long
  10.         Bottom As Long
  11. End Type
  12. Const GWL_STYLE = (-16)
  13. Const WS_CAPTION = &HC00000
  14. Const SWP_FRAMECHANGED = &H20
  15. Public Declare Function FindWindowA Lib "user32" _
  16.         (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  17.        
  18. Public Declare Function GetWindowRect Lib "user32" _
  19.         (ByVal hwnd As Long, lpRect As RECT) As Long
  20.        
  21. Public Declare Function GetWindowLong Lib "user32" Alias _
  22.         "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  23. Public Declare Function SetWindowLong Lib "user32" Alias _
  24.         "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
  25.         ByVal dwNewLong As Long) As Long
  26. Public Declare Function SetWindowPos Lib "user32" _
  27.         (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, _
  28.         ByVal y As Long, ByVal cx As Long, ByVal cy As Long, _
  29.         ByVal wFlags As Long) As Long
  30. Private Declare Function GetSystemMetrics Lib "user32" _
  31. (ByVal nIndex As Long) As Long
  32. Private Const SM_CXSCREEN = 0 'Screen width
  33. Private Const SM_CYSCREEN = 1 'Screen height
  34. Private Declare Function GetDC Lib "user32" _
  35. (ByVal hwnd As Long) As Long
  36. Private Declare Function GetDeviceCaps Lib "gdi32" _
  37. (ByVal hDC As Long, ByVal nIndex As Long) As Long
  38. Private Declare Function ReleaseDC Lib "user32" _
  39. (ByVal hwnd As Long, ByVal hDC As Long) As Long
  40. Private Const LOGPIXELSX = 88 'Pixels/inch in X
  41. Private Const POINTS_PER_INCH As Long = 72
  42. Public Function ScreenWidth() As Long
  43. ScreenWidth = GetSystemMetrics(SM_CXSCREEN)
  44. End Function
  45. Public Function ScreenHeight() As Long
  46. ScreenHeight = GetSystemMetrics(SM_CYSCREEN)
  47. End Function
  48. Public Function PointsPerPixel() As Double
  49. Dim hDC As Long
  50. Dim lDotsPerInch As Long
  51. hDC = GetDC(0)
  52. lDotsPerInch = GetDeviceCaps(hDC, LOGPIXELSX)
  53. PointsPerPixel = POINTS_PER_INCH / lDotsPerInch
  54. ReleaseDC 0, hDC
  55. End Function


 
Et j'ai utilisé :
 

Code :
  1. .Width = ScreenWidth * PointsPerPixel
  2. .Height = ScreenHeight * PointsPerPixel


 
C'est pas beau mais ça marche.


Message édité par Rondoudoudou le 09-07-2009 à 11:46:21

---------------
Ctplm !
n°1905978
LePhasme
Les Belges domineront le monde
Posté le 16-07-2009 à 22:27:11  profilanswer
 

Ha ouai [:pingouino]


---------------
Instagram - Mon PVT en Australie.

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

  Dimension Userform

 

Sujets relatifs
Form et UserFormAide pour la programmation d'un userform remplissant une ligne Excel
Ma variable publique est désinitialisée par mon UserFormVBA + userform
[VBA Excel] Procédure redondante dans UserformVector 3 dimension
Récupérer la saisie sur userform dans la macroOuvrir un userform d'un autre fichier Excel
Gerer les DblClick sur les UserFormcode vba protection feuille excel sauf userform
Plus de sujets relatifs à : Dimension Userform


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