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 :

Ajout dans un userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut Ajout dans un userform
    Bonjour à tous !

    J'ai un nouveau projet à réaliser mais avant de débuter, j'aimerais savoir s'il est possible d'ajouter un bouton, un label ou un checkbox (par exemple) à l'intérieur d'un userform déjà existant et d'ajouter du code dans le userform ou directement attaché à l'objet ajouté?


    Merci à l'avance

    Dlight

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    oui cela est possible en utilisant VBComponent

    Sur cet exemple on ajoute un bouton sur une Userform ainsi que son code
    http://excel.developpez.com/faq/inde...tCommandButton

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut re
    Merci à vous jfontaine pour votre réponse.

    Corriger moi si je me trompe, mais le lien proposé ajoute un bouton de commande dans une feuille alors que mes ajouts seront dans un userform déjà existant

    Dlight

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu cherché dans la FAQ ? http://excel.developpez.com/faq/inde...m#UsfDynamique

    Philippe

  5. #5
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    mais le lien proposé ajoute un bouton de commande dans une feuille alors que mes ajouts seront dans un userform déjà existant
    Ce lien propose un exemple de fonctionnement de VBComponent qu'il te faut adapter à ton besoin.

    Commence une adaptation et reviens vers nous si tu as une difficulté. (A moins que tu bloques dès le début )

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut re
    Merci à vous deux pour les pistes de solutions. Je vais tester afin de comprendre le fonctionnement et si j'ai des problèmes, le forum en sera informé car sans vos judicieux conseils, ma connaissance n'avance pas très rapidement...


    Dlight

  7. #7
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    pour te mettre sur la piste, ci dessous un exemple

    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
    Sub Form_Modif()
     
     
    Dim Usf As VBComponent
    Dim obj As Object
    Dim i As Integer
     
     
    Set Usf = ThisWorkbook.VBProject.VBComponents.Item("frm_form1")
     
     
     
                                    '###################
                                    '### Ajoute les Objets ###
                                    '###################
     
    Set obj = Usf.Designer.Controls.Add("Forms.ListBox.1")
    With obj
        .BackColor = &H80000018
        .BorderStyle = 1
        .SpecialEffect = 0
        .MultiSelect = 2
        .Font.Name = "Courier New"
        .IntegralHeight = False
        .BoundColumn = 0
        .Left = 0
        .Top = 0
        .Width = 600
        .Height = 337
    End With
     
     
                                    '#################
                                    '### Ajoute le code ###
                                    '#################
     
     
    With Usf.CodeModule
        i = .CountOfLines
        .InsertLines i + 1, "Private Sub UserForm_Initialize()"
        .InsertLines i + 2, "AfficheList"
        .InsertLines i + 3, "End Sub"
    End With
     
    End Sub

  8. #8
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut Re
    Bonjour à tous !

    J'espère que vous ne me voudrez pas jfontaine si j'ai pris un peu de temps avant de donner suite à votre dernier message. Le projet avait été mit de coté...

    J'ai 2 problèmes avec le code proposé.

    1- J'ai une erreur de compilation à Dim Usf as VBComponent. si quelqu'un peut m'expliquer la source je lui serait très reconnaisant.

    J'ai temporairement retiré la ligne qui cause l'erreur de compilation afin de comprendre la manipulation de ce code. J'aimerais que plus d'un label s'ajoute par le 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
    44
    45
    46
    47
    48
    49
    50
    51
    Sub Form_Modif()
     
     
    'Dim Usf As VBComponent
    Dim obj As Object
    Dim i As Integer
    Dim j As Integer
     
    j = 1
     
     
    Set Usf = ThisWorkbook.VBProject.VBComponents.Item("frm_form1")
     
     
     
                                    '###################
                                    '### Ajoute les Objets ###
                                    '###################
     
    Set obj = Usf.Designer.Controls.Add("Forms.Label." & j)
    With obj
        .BackColor = &H8000000F
        .Font.Name = "Courier New"
        .Left = 6
        .Top = 222
        .Width = 150
        .Height = 25
        .Caption = ""
    End With
    j = j + 1
     
    Set Usf = ThisWorkbook.VBProject.VBComponents.Item("frm_form1")
     
     
     
                                    '###################
                                    '### Ajoute les Objets - 2 ###
                                    '###################
     
     
    Set obj = Usf.Designer.Controls.Add("Forms.Label." & j)
    With obj
        .BackColor = &H8000000F
        .Font.Name = "Courier New"
        .Left = 160
        .Top = 222
        .Width = 150
        .Height = 25
        .Caption = ""
    End With
    j = j + 1
    Avec ce code, j'ai l'erreur -2147221005 - Chaine de classe incorecte lors de l'ajout du label # 2.

    Merci une fois de plus pour l'aide.

    Dlight

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 107
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Usf.Designer.Controls.Add("Forms.ListBox.1")

    Forms.ListBox.1 est la designation du controle, tu peux en ajouter 50, c'est par cette designation qu'il faut passer, apres tu peux boucler sur les noms.


  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut re
    Merci à vous AlphaScorpi pour l'explication.

    Je vais tester cela sous peu

    Merci

    Dlight

Discussions similaires

  1. [XL-2007] Ajouter un bouton dans un userform par macro
    Par mimidodo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2015, 13h31
  2. Réponses: 1
    Dernier message: 28/10/2014, 20h48
  3. 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
  4. [XL-2007] Ajout d'un bouton dans un USerform
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2012, 09h58
  5. ajouter une info rentrée dans un userform dans une cellule précise
    Par AlexFred dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/06/2010, 14h43

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