ajuster un UserForm à l'écran

  • Initiateur de la discussion Initiateur de la discussion xstier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

X

xstier

Guest
Bonsoir à tous

Je vous expose mon problème

J'ai un UserForm que j'aimerai ajuster à la taille de l'écran et non de l'application

Je suis attentif à l'ensemble de vos solutions

Xavier

🙂
 
Dernière modification par un modérateur:
Re : ajuster un UserForm à l'écran

Bonsoir,

ta question posé semble être simple, mais ce n'est pas si évident d'établir USF agrandissant ou diminuant,

un USF ne s'agrandit pas du milieu au même pourcentage vers tous les cotés de l'écran,
mais un USF est placé sur un point précis et puis s'agrandit en bas et vers la droite,

ci-joint fichier modifié, reste à être adapté,
 

Pièces jointes

Re : ajuster un UserForm à l'écran

Bonsoir xstier, news,

Cette question a déjà été abordée ici est résolue de mémoire, le seul problème retrouver le fil en question....

L'intervenant devait être @+Thierry à l'époque ou _Thierry sous la nouvelle version du forum...

Si je retrouve, je reviens ou si cela aide à trouver....

Bonne nuit.

Jean-Pierre
 
Re : ajuster un UserForm à l'écran

Bonjour xstier, jeanpierre, news,

Personnellement j'utilise ceci pour un USF plein écran, à mettre dans le code de l'usf concerné:
Code:
Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
puis dans usf-initialize:
Code:
Dim hwnd As Long, exLong As Long, zFactor As Integer

hwnd = FindWindowA(vbNullString, Me.Caption)
exLong = GetWindowLongA(hwnd, -16)
If exLong And &H880000 Then SetWindowLongA hwnd, -16, exLong And &HFF77FFFF
zFactor = 100 * CInt(Application.Width / Me.Width)
If zFactor > 400 Then zFactor = 400
Me.Width = Application.Width
Me.Height = Application.Height
Me.Zoom = zFactor

J"avais trouvé cette astuce dans un forum, car je voulais empêcher de déplacer avec la souris en plein écran.

Ou alors ceci, sur ce forum, mais je ne rappel plus de qui il est (désolé):
Code:
With UserForm1
.startUpPosition = 3
.Width = Application.Width
.Height = Application.Height
.Left = 0
.Top = 0
End With
Puis:
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 'inactive la croix
If CloseMode = 0 Then Cancel = True
End Sub
Pour empêcher de fermer via la croix! Mais l'on pourra toujours le déplacer pour atteindre l'application.

Espérant avoir bien compris ta demande!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
190
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
524
Réponses
19
Affichages
660
Retour