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 :

Creer une liste dynamique de CheckBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut Creer une liste dynamique de CheckBox
    Bonjour,

    Je souhaiterai creer une liste de checkbox dynamique. Mais en ligne pas en colonne. Si ca peut aider, le nombre de checkbox depend du nombre d'element stocker dans un vecteur dynamique. En fait c est pour creer des evenements relative a une colonne de Listview. Avec une Listview il est possible d'integrer des checkboxs mais uniquement en ligne... Avez vous des idees ?

    Merci d avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Je pars du postulat que les case à cocher sont sur un UserForm !

    A mettre dans le module de l'UserForm :
    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
     
    Dim Chk() As New Classe1 'A mettre en tête de module
     
    Private Sub UserForm_Initialize()
     
        Dim Ctrl As MSForms.CheckBox
        Dim Plage As Range
        Dim I As Integer
        Dim J As Integer
        Dim Gauche As Long
     
        Gauche = 5
     
        For I = 1 To 20
     
            Set Ctrl = Me.Controls.Add("Forms.CheckBox.1", "Chk" & J, True)
     
            With Ctrl
     
                .Left = Gauche
                .Top = 10
                .Width = 80
                .Height = 15
                .Caption = "Case à cocher " & I
     
                ReDim Preserve Chk(1 To I)
                Set Chk(I).GroupeChk = Ctrl
     
            End With
     
            Gauche = Gauche + 100
     
            J = J + 1
     
        Next I
     
        With Me
     
            .ScrollBars = 1
            .ScrollWidth = Gauche
            .ScrollLeft = 2
     
        End With
     
    End Sub
    A mettre dans un module de classe nommé Classe1 (nom par défaut) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public WithEvents GroupeChk As MSForms.CheckBox
     
    Private Sub GroupeChk_Click()
     
        MsgBox "La case à cocher '" & GroupeChk.Caption & "' a la valeur " & GroupeChk.Value
     
    End Sub
    bien sûr, tout ça est à adapter selon tes besoins !

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    Bonjour,
    COmpile
    J ai essaye de copier le code en suivant les instructions du commentaire precedent. Cependant il reste un bug a la ligne en rouge. Le message d'erreur est : Copile Error: Variable not defined

    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
        Dim Ctrl As MSForms.CheckBox
        Dim Plage As Range
        Dim I As Integer
        Dim J As Integer
        Dim Gauche As Long
     
        Gauche = 5
     
        For I = 1 To 20
     
            Set Ctrl = Me.Controls.Add("Forms.CheckBox.1", "Chk" & J, True)
     
            With Ctrl
     
                .Left = Gauche
                .Top = 10
                .Width = 80
                .Height = 15
                .Caption = "Case à cocher " & I
     
                ReDim Preserve Chk(1 To I)
                Set Chk(I).GroupeChk = Ctrl
     
            End With
     
            Gauche = Gauche + 100
     
            J = J + 1
     
        Next I
     
        With Me
     
            .ScrollBars = 1
            .ScrollWidth = Gauche
            .ScrollLeft = 2
     
        End With
            
            
        End With
    J ai bien colle la deuxieme partie du code dans un nouveau module de classe. Merci d avance pour votre aide

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    où est passée la déclaration de chk ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    A merci j ai pas fait attention je teste et je reviens vers vous

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2016
    Messages : 192
    Par défaut
    Ca marche mais maintenant j'ai une autre question

    J aimerai nommer les textbox par les elements contenus dans un vecteur. J ai tester le code le vecteur mache parfaitement, j arrive a recuperer le nombre d element et les constituants.

    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
    For I = 1 To UBound(Split(funds_list, ","))
     
            Set Ctrl = Me.Controls.Add("Forms.CheckBox.1", "Chk" & J, True)
     
            With Ctrl
     
                .Left = Gauche
                .Top = 50
                .Width = 60
                .Height = 15
                .Caption = UBound(Split(I, ","))
     
                ReDim Preserve Chk(1 To UBound(Split(funds_list, ",")))
                Set Chk(I).GroupeChk = Ctrl
     
            End With
     
            Gauche = Gauche + 50
     
            J = J + 1
     
        Next I
     
        With Me
     
            .ScrollBars = 1
            .ScrollWidth = Gauche
            .ScrollLeft = 2
     
        End With
            
            
        End With
    
    
    
    End Sub
    Cependant la ligne en rouge cense me renvoyer les noms contenus dans funds_list me renvoie 0 ce qui est normal car je n'ai aucune variable recuperant l element I du vecteur. Avez vous une idee ?

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

Discussions similaires

  1. creer une liste dynamique
    Par nicoroth dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/07/2007, 17h22
  2. [C#] Comment créer une liste d'image dynamiquement ?
    Par gwenhael dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/09/2006, 11h30
  3. Créer une liste avec taille inconnue
    Par C_C dans le forum Prolog
    Réponses: 3
    Dernier message: 19/11/2005, 12h46
  4. Compiler et créer une librairie dynamique en C
    Par fidififouille dans le forum Linux
    Réponses: 3
    Dernier message: 30/11/2004, 16h36
  5. [MFC] creer une liste avec des check????
    Par ginounet dans le forum MFC
    Réponses: 4
    Dernier message: 16/06/2004, 11h47

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