IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Macros et VBA Excel Discussion :

Imbrication de contrôles dans un userform créé dynamiquement [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut Imbrication de contrôles dans un userform créé dynamiquement
    Bonjour !
    Je souhaite créer dynamiquement un userform contenant plusieurs onglets, avec un certain nombre de labels dans chacun de ces onglets
    j'arrive à créer des "multipages", j'arrive à créer des labels, mais pas à créer de labels dans un "multipage".
    par analogie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    userform.designer.controls.add("forms.label.1", "Label"&i)
    qui fonctionne très bien, j'ai tenté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    userform.multipage1.pages(1).designer.controls.add("forms.label.1", "Label"&i)
    'ou encore
    userform.designer.controls.multipage1.pages(1).controls.add("forms.label.1", "Label"&i)
    mais soit il ne trouvait pas la méthode, soit il ne trouvait pas d'objet.
    comment puis-je procéder ?
    merci beaucoup

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    Difficile de répondre sans voir comment tu crées préalablement l'userform et le multipage.

    ci dessous un exemple simplifié qui crée dynamiquement un userform, un multipage et un label dans la page 2 du multipage :

    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
    44
    45
    46
    47
    48
    49
    50
    Option Explicit
    Dim Usf As Object
     
     
    Sub lancementProcedure()
        Dim X As Object
        Dim strList As String, strLabel As String
     
        strList = "MultiPage1"
        strLabel = "Label1"
        Set X = creationUserForm_Et_MultiPage_Dynamique(strList, strLabel)
     
        X.Show
     
        ThisWorkbook.VBProject.VBComponents.Remove Usf
        Set Usf = Nothing
    End Sub
     
     
    Function creationUserForm_Et_MultiPage_Dynamique(nomMultiPage As String, _
        nomLabel As String) As Object
     
        Dim ObjMulti As Object, ObjLabel As Object
        Dim j As Integer
     
        Set Usf = ThisWorkbook.VBProject.VBComponents.Add(3)
        With Usf
            .Properties("Caption") = "Mon UserForm"
            .Properties("Width") = 300
            .Properties("Height") = 200
        End With
     
        Set ObjMulti = Usf.Designer.Controls.Add("Forms.MultiPage.1")
     
        With ObjMulti
            .Left = 20: .Top = 10: .Width = 160: .Height = 120
            .Name = nomMultiPage
        End With
     
        Set ObjLabel = ObjMulti.Pages(1).Controls.Add("Forms.Label.1")
     
        With ObjLabel
            .Left = 10: .Top = 10: .Width = 70: .Height = 30
            .Name = nomLabel
            .Caption = "mon texte"
        End With
     
        VBA.UserForms.Add (Usf.Name)
        Set creationUserForm_Et_MultiPage_Dynamique = UserForms(UserForms.Count - 1)
    End Function

    bonne soirée
    michel

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 29
    Par défaut
    merci beaucoup, c'est exactement ce que je cherchais ! j'avais un peu trop tout concaténé...

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

Discussions similaires

  1. Ajout automatique de contrôle dans un UserForm
    Par guilty_AL dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/04/2013, 09h01
  2. [XL-2010] Création dynamique de "Contrôles" dans un "Userform" : Erreur d'execution 91
    Par Stéphane8 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/10/2012, 11h38
  3. [XL-2003] Dupliquer dynamiquement des contrôles dans un userform
    Par thilamb dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/08/2012, 17h02
  4. Intercepter un click sur un Contrôle dans une UserForm
    Par RedColibri dans le forum VBA Word
    Réponses: 2
    Dernier message: 11/07/2008, 11h35
  5. Réponses: 2
    Dernier message: 27/11/2005, 00h43

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