Redimensionner un USF (label)

Bonjour à tous,

Déjà je vous remercie de me lire.

Je débute en VBA, (fin je reprend) mon code étant mal fait je ne vais pas le poster, je sais qu'il pourrait être simplifié.

Je voudrai simplement savoir s'il est possible lors de mon redimensionnement de l'usf en fonction de la taille de l'écran, cela marche; faire en sorte que la taille des labels suivent aussi.

Je m'explique, en claire mon usf est bien redimensionner sauf que je ne vois pas la totalité de l'information du label.

est ce que quelqu'un peut m'aider ? j'aimerai juste comprendre si cela est possible.

Bien cordialement,

Ps : voici la partie de mon code pour redimensionner, je sais c'est peut être et surement pas la meilleure manière de faire.

code dans l'USF :

Private Sub UserForm_Activate()
 Set user = Me: es
 End Sub

 Private Sub UserForm_Resize()
 zz
 End Sub

Code dans un module :

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
 Public Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
 Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
 Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
 Const GWL_STYLE = (-16), GWL_EXSTYLE = (-20), WS_SIZEBOX = &H40000, WS_TROIS_BOUTON = &H70000, WS_EX_APPWINDOW = &H40000
 Public l(), h(), f(), p(), s() As String, wLong As Long, hWnd As Long, i, c As Control, la As Long, ha As Long
 Public user As Object
 Sub es()
 i = 0: ha = user.Height: la = user.Width
 For Each c In user.Controls
  i = i + 1
  ReDim Preserve l(i): l(i) = c.Width
  ReDim Preserve h(i): h(i) = c.Height
  ReDim Preserve p(i): p(i) = c.Top
  ReDim Preserve f(i): f(i) = c.Left
  'ReDim Preserve s(i): s(i) = c.Width / c.Font.Size
  Next
 hWnd = FindWindow(vbNullString, user.Caption)
 wLong = GetWindowLongA(hWnd, GWL_STYLE) Or WS_SIZEBOX Or WS_TROIS_BOUTON
 SetWindowLong hWnd, GWL_STYLE, wLong
 ShowWindow hWnd, 3 'plein ecran a ouverture
 End Sub
 Sub zz()
 On Error Resume Next
 i = 0
 For Each c In user.Controls
 i = i + 1
 c.Width = user.Width / (la / l(i))
 c.Height = user.Height / (ha / h(i))
 c.Left = user.Width / (la / f(i))
 c.Top = user.Height / (ha / p(i))
 c.Font.Size = c.Width / s(i)
 Next
 End Sub

Bonjour Imika51,

Je viens de faire un exemple. Il ne tient pas compte de la taille écran.

Le code agit sur la propriété zoom de l'userform.

A adapter à ton cas

Cordialement

46classeur1.xlsm (18.33 Ko)

Merci mais je ne souhaite pas avoir un zoom ou dézoom

C'est pour des opérateurs et je voudrai que tous s'affiche bien directement sans avoir a appuyer sur un bouton.

bien cordialement.


Je joins un fichier sans données,

Ne tenez pas compte des erreurs de code je sais que ce n'est pas du tout optimiser.

44anomalies3.xlsm (68.17 Ko)

Merci de la solution.

Bien cordialement.

Rechercher des sujets similaires à "redimensionner usf label"