Bonjour à tous,

Je travaille actuellement sur une macro Outlook 2016 pour générer des événements dans un calendrier en fonction de choix réalisés par des users. Cette macro appelle un userform sur lequel sont générés dynamiquement des boutons d'option. Ces boutons sont générés au sein de plusieurs cadres contenant chacun trois labels en guise d'en-tête.
Visuellement, cela donne ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Frame1                   Frame2
Label1  Label2  Label3   Label1  Label2  Label3
-user1  -user1  -user1   -user1  -user1  -user1
-user2  -user2  -user2   -user2  -user2  -user2
...
Je parviens à générer ces contrôles au moment de l'initialisation de la Form mais tous mes boutons semblent se chevaucher sur une seule ligne.
Visuellement, j'obtiens ceci pour chaque cadre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Frame1
Label1                    Label2                    Label3
-dernierUserDeLaListe     -dernierUserDeLaListe     -dernierUserDeLaListe
Mes contrôles se positionnent correctement de manière horizontale mais de manière verticale, géré avec la propriété .Top du contrôle, tout semble se chevaucher sur la même ligne. Je pense à un chevauchement puisque uniquement le nom du dernier utilisateur de la liste est affiché.

Le code que j'utilise pour générer mes contrôles est le suivant (le tout est contenu dans une boucle For Each, d'où l'incrémentation en fin de code) :
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
42
43
 
    Dim opBtn As MSForms.Control
    Dim x As Integer
    Dim optionButtonCaption As String
    Dim userNumber As Integer
 
    x = 1
    Set opBtn = Me.Frame1.Controls.Add("Forms.OptionButton.1")
        With opBtn
            .AutoSize = True
            .Left = x * 36
            .Top = 18 + (userNumber * 18)
            .Caption = optionButtonCaption
            .Height = 36
            .Width = 48
            .ZOrder (0)
        End With
 
    x = 2
    Set opBtn = Me.Frame1.Controls.Add("Forms.OptionButton.1")
        With opBtn
            .AutoSize = True
            .Left = x * 36
            .Top = 18 + (userNumber * 18)
            .Caption = optionButtonCaption
            .Height = 36
            .Width = 48
            .ZOrder (0)
        End With
 
    x = 3
    Set opBtn = Me.Frame1.Controls.Add("Forms.OptionButton.1")
        With opBtn
            .AutoSize = True
            .Left = x * 36
            .Top = 18 + (userNumber * 18)
            .Caption = optionButtonCaption
            .Height = 36
            .Width = 48
            .ZOrder (0)
        End With
 
    userNumber = userNumber + 1
Et je continue ainsi pour chacun de mes cadres.

Aurais-je oublié un détail? Aide bienvenue :)