Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2018
    Messages : 3
    Points : 5
    Points
    5

    Par défaut 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 : 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

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2018
    Messages : 3
    Points : 5
    Points
    5

    Par défaut

    Citation Envoyé par Jerem1512 Voir le message
    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) :

    Mon compteur était réinitialisé à 1 au sein de la boucle For Each... Problème résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PR-2016] Chevauchement de contrôles dynamiques au sein d'un cadre(frame)
    Par Jerem1512 dans le forum VBA Project
    Réponses: 0
    Dernier message: 14/05/2018, 11h34
  2. Réponses: 6
    Dernier message: 16/01/2006, 13h29
  3. [VBA Excel] Créer plusieurs contrôles dynamiquement
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2005, 17h27
  4. Réponses: 5
    Dernier message: 13/10/2005, 19h33
  5. [VB.NET] Creer des contrôles dynamiquement
    Par theartist dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/01/2005, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo