bonsoir
C'est mon premier apport dans ce forum , en fouillant dans le net pour une solution "maximiser une UserForm en VBA ( Excel)" pour n’importe quels type d’écran PC (19" 20" ou autre) , j'ai trouvé pas mal de codes plus au moins compliqués pour un débutant , alors j'ai eu une idée très simple que voulez partager avec vous ( les débutants bien sur) :
l'idée est la suivante :
Pour maximiser un UserForm en VBA , le plus simple est de maximiser au démarrage la fenêtre excel puis de retenir dans des variables les limites de cette fenêtre pour les utiliser dans votre userform , et comme ça quelque soit la taille d’écran :
le code dans thisWorkbook:
'lors de l'ouverture du classeur
le code dans l'userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub Workbook_Open() 'maximiser la fenattre excel et calculer les dimenssions ThisWorkbook.Application.WindowState = xlMaximized 'calcules des domenssion de la fenettre excel max VarHeight = ThisWorkbook.Application.Height VarTop = ThisWorkbook.Application.Top VarWidth = ThisWorkbook.Application.Width VarLeft = ThisWorkbook.Application.Left End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 dim dimenssion As Boolean ' intialisation UserForm Sub UserForm_Initialize() 'etat afichege userform( Min) dimenssion = True End Sub
'calcule des dimenssion de l'userform
'Bouton Max Min dans l'userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub UserForm_Activate() 'stocke les diemenssion dans une feuille Range("Height").Value = Me.Height Range("Top").Value = Me.Top Range("Width").Value = Me.Width Range("Left").Value = Me.Left End Sub
ci-joint un fichier exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub BtMaxMin_Click() If dimenssion = True Then Me.Height = VarHeight Me.Top = VarTop Me.Width = VarWidth Me.Left = VarLeft dimenssion = False Else Me.Height = Range("Height").Value Me.Top = Range("Top").Value Me.Width = Range("Width").Value Me.Left = Range("Left").Value dimenssion = True End If End Sub
Partager