Bonsoir,
j'essaye de mettre en place cette procédure qui permet d'auto centrer un formulaire en fonction de la résolution.
j'ai donc créer mon module positionner:
je fait donc appel à ce module à l'ouverture de mon formulaire:
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Option Compare Database Option Explicit Public Sub positionner(frm As Form) Dim FParent As Position '--Fenêtre Parent Dim Fenetre As Position Dim Largeur As Integer Dim Hauteur As Integer Dim LParent As Integer ' --Largeur Fenêtre Parent Dim HParent As Integer ' --Hauteur Fenêtre Parent Dim PParent As Long ' --Posion parent On Error GoTo Erreur ' --Trouver les coordonnées de mon formulaire à centrer. PParent = GetParent(frm.hwnd) ' --Obtenir les coordonnées de mon formulaire et celles de son parent. Call GetWindowRect(frm.hwnd, Fenetre) ' --Si le parent est la fenêtre Access, pas de soustracion If PParent <> Application.hWndAccessApp Then Call GetWindowRect(PParent, FParent) Else ' -- les coordonnées du Desktop Call GetWindowRect(GetDesktopWindow(), FParent) End If ' --Calcul de la largeur et de la hauteur du parent With FParent LParent = .Right - .Left HParent = .Bottom - .Top End With ' --Calcul de la largeur et de la hauteur de mon formulaire With Fenetre Largeur = .Right - .Left Hauteur = .Bottom - .Top .Left = (LParent - Largeur) \ 2 .Top = (HParent - Hauteur) \ 2 End With ' --Centrer mon formulaire Call MoveWindow(frm.hwnd, Fenetre.Left, Fenetre.Top, Largeur, Hauteur, bRepaint:=True) Exit Sub Erreur: MsgBox "Erreur: " & Err.Number & vbCrLf & Err.Description End Sub
cependant lors de l'ouverture access me dit qu'une variable ou procédure est attendue, et non un module.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Form_Open(Cancel As Integer) Call positionner(Me) End Sub
à moins d'avoir mal compris la FAQ je ne vois pas comment résoudre ce problème!
Merci,
Maxime
Partager