Chevauchement de contrôles dynamiques au sein d'un cadre
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:
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:
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:
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 :)