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.

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
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.

Une fois les valeurs assignées vous pouvez modifier certains contrôle si vous le souhaitez.

A+