Bonjour à tous.
Suite à la création d'un formulaire avec pas mal de champs et qui utilisait la fonction "Disposition" (layout), qui permet à Access de redimensionner les contrôles en fonction de l'espace disponible, j'ai obtenu des effets assez indésirables.
Certains contrôles étaient bien étirés mais d'autres pas. Au final mon formulaire avait un air assez tordu.
L'assignation de l'ancrage par l'interface est parfois boguée et même si on applique bien l'étirement que l'on veut, soit il ne le fait pas, soit il change le paramétrage à une autre valeur et il faut prendre chaque contrôle un à un ... bref ce n'est pas efficace.
Donc ici du code qui fait cela pour moi.
Attention ce code n'enregistre pas automatiquement les modifs pour vous permettre de vérifier que tout est correct, alors n'oubliez pas de sauvegarder.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub AssignerAncrage() Call DoCmd.OpenForm("frmMonForm", acDesign) Dim frm As Form: Set frm = Forms("frmMonForm") Dim c As Control: For Each c In frm.Controls Debug.Print c.Name, c.HorizontalAnchor, c.VerticalAnchor DoEvents c.HorizontalAnchor = acHorizontalAnchorBoth 'Étirement horizontal c.VerticalAnchor = acVerticalAnchorTop 'Tasser en haut Next c End Sub
Une fois les valeurs assignées vous pouvez modifier certains contrôle si vous le souhaitez.
A+
Partager