Adapter UserForm à l'écran

Bonsoir à tous,

Je recherche une macro qui adaptera mon userfom à la taille de l'écran.

J'ai déjà ce code:

Private Sub UserForm_Initialize()
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H20000
Application.Visible = True
UserFormEMIDICE.Width = Application.Width
UserFormEMIDICE.Height = Application.Height
End Sub

Il adapte effectivement l'Userform à l'écran mais laisse apparaitre une large zone vide sur un écran de taille supérieure à celle de l'écran ou je code et nécessite l'usage des scrollbar sur un écran plus petit, ce qui n'est pas très commode.

Y aurait-il un code qui adapte la taille de l'UserForm en pourcentages?? C'est à dire que si l'écran = 120% de la taille de mon écran sur lequel je code, chaque élément est affiché à 120% et si il fait 75% de la taille de mon écran, chaque élément s'affiche à 75% de sa taille initiale...

Est-ce claire,

merci de vos réponses,

Simon

sans titre4 sans titre5

Bonjour,

Code à essayer :

Private Sub UserForm_Initialize()
With UserForm1
    .StartUpPosition = 3
    .Width = Application.Width
    .Height = Application.Height
    .Left = 0
    .Top = 0
End With
End Sub

Amicalement

Dan

Merci Dan,

ton code est effetivement mieux, l'userform est au moin en haut et à gauche à l'ouverture.

Malheuresement il ne réduit pas la taille des éléments si nécessaire et je dois tjs utiliser la scrollbar. En plus, lorsque je clique sur un bouton, l'userform se repositionne automatiquement ce qui n'est pas très pratique.

Peut-être ce code doit-il être améliorer. Si vous avez une autre idée, je suis preneur,

Merci,

Simon

Bonjour OncleBarney

Dans l'initialise tu peux mettre avant le reste

Application.WindowState = xlMaximized

pour afficher excel a la taille maxi

sinon fichier joint plus compliqué bidouillé d 'une démo de Michel Pierron sur excelabo

Cordialement

Bob

1'791resize.zip (19.86 Ko)
185championnat.xlsx (10.79 Ko)

Salut Bob et merci de ta réponse.

Cette technique fonctionne effectivement très bien... si l'userform doit être agrandie...

J'avais d'ailleurs déjà trouvé un code qui le faisait très bien sur le net. Je vous le mets en pièce jointe et vous invite à le regarder. Vous y trouverez l'adaptation de l'userform et tous les contrôles à la taille de l'écran, la possibilité de rendre la fenêtre mobile ou non, celle de faire disparaitre une bordure et celle de faire apparaitre ou nom la barre de titre. Vraiment intéressant.

Mais dans mon cas, l'userform est généralement plus grande que l'écran. Le code réduit donc les contrôles mais il ne gère pas bien les labels. Je me retrouve donc avec des labels coupés, c'est gênant...

Sauriez vous comment adapter ce code?

Merci d'avance,

Simon

Bonjour OncleBarney

Bon moi je cale

as tu essayé avec le zoom de l'user

A+

Bob

1'829zoom.zip (7.03 Ko)

re,

Code à essayer

Private Sub UserForm_Initialize()
With Userform1
.Top = 0
.Left = 0
.Height = Application.UsableHeight
.Width = Application.UsableWidth
End with
End Sub

Amicalement

Dan

Merci pour vos réponses à tout les deux.

Dan, ton code n'est malheureusement pas ce que je cherche. L'userfrom prend la taille de l'écran en largeur puis 50% de la taille en hauteur et centre l'userform.

Bob, ta méthode est une bonne alternative et je pense que je vais la retenir même si j'aurai préféré que la mise à l'échelle se fasse automatiquement.

Les boutons + et - ne me plaisent pas trop alors je leur ai ajouté des accelerator et les ai caché.

Je ne mets pas encore ce fil en "résolu" au cas ou quelqu'un me propose autre chose, sinon j'utiliserai la méthode du zoom, c'est vraiment pas mal^^

Merci encore à tout les deux, à bientôt,

Simon

Bonjour,

Je suis un débutant dans les VBA et je cherche quelqu'un pour m'aider à mettre mon userform afin qu'il s'adapte correctement à l'écran. Désolé mais je n'y suis pas arrivé avec vos indications.

voici le fichier ci-joint

merci d'avance pour votre aide

208controle.xlsm (46.67 Ko)
Rechercher des sujets similaires à "adapter userform ecran"