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 :

utiliser les checkbox crées par macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut utiliser les checkbox crées par macro
    bonjour,

    j' ai un pb assez difficile car je n'arrive pas à trouver de solutions dans les forums

    je crée dans un userforms des checkbox de façon dynamique, qui dépendent de l'existence ou non de fichiers dans un répertoire.

    l'utilisateur doit cocher les cases correspondantes pour lister les fichiers qu'il veut integrer.

    comme j' ai créer les CB par vba, je n'arrive pas à les voir en temps d'objets dans le userform, donc je ne peux pas récupérer la liste des cases cochées.

    ci joint le code pour créer mes CB

    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
     
     
    ' construire le formulaire Cem
    If Configuration.CheckBox_Cem = True Then
        CEM.Show 0
       max_ecarte = 100
      CEM.StartUpPosition = 3
      CEM.Left = 400
      CEM.Top = max_clim * 12 + 140
     
        max_CEM = UBound(list_cem)
        CEM.Height = max_CEM * 18 + 50
     
        For i = 1 To max_CEM
     
        Set NewCheckBox_CEM = CEM.Controls.Add("Forms.checkbox.1", list_cem(i), True)
        ecarte = Len(list_cem(i)) * 5
     
       If ecarte > max_ecarte Then max_ecarte = ecarte
       CEM.Width = max_ecarte + 10
     
         With NewCheckBox_CEM
                .Name = "CEM" & i
                .Caption = list_cem(i)
                .Top = 12 * i
                .Width = ecarte
                .Height = 12
                .Font.Size = 7
                .Font.Name = "Tahoma"
                '.BackColor = &HFF00&
                .Visible = True
            End With
     
        Next i
     
        ' bouton de validation
     
            With CEM.Valid_CEM
                .Top = max_CEM * 12 + 20
                .Left = 20
            End With
     
     
         ' bouton d'abandon
     
            With CEM.Abandon_CEM
                .Top = max_CEM * 12 + 20
                .Left = 120
            End With
     
    End If
    le formulaire CEM, avec les boutons validation et abandon a été créé "à la main", avec l'éditeur de userforms, donc ceux là je peux les gérer,

    mais je ne vois pas les NewCheckBox_CEM

    merci d'avance à qui peut m'aider.

  2. #2
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Il te faut parcourir les contrôles à la recherche des CheckBox et savoir leur valeur :
    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
     
    Sub Cocher()
     
        Dim Ctrl As Object
     
        For Each Ctrl In Me.Controls
     
                'si c'est une case à cocher et qu'elle est true
                If TypeName(Ctrl) = "CheckBox" And Ctrl.Value = True Then
     
                    MsgBox Ctrl.Name
     
                End If
     
        Next
     
    End Sub
    Hervé.

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    merci mais ça cole pas
    j'ai essayé mais ça ne me renvoie que les controls créés à la main
    car c'est bien ça le sens de ma question.

    les controls créés par vba doivent avoir une propriété supplémentaire que je ne connais pas,

  4. #4
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Re,

    Ce code doit te renvoyer les noms des CheckBox cocher qu'elles soient manuelles ou dynamiques. Fait un test en ajoutant une form sur laquelle tu pose un bouton de commande et ensuite, tu colle ce code dans le module de la form et tu teste :
    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
     
    Private Sub UserForm_Initialize()
     
        Dim NewCheckBox_CEM As MSForms.CheckBox
        Dim I As Integer
     
        'crée 10 cases à cocher
        For I = 1 To 10
     
        Set NewCheckBox_CEM = Me.Controls.Add("Forms.checkbox.1", "Case" & I, True)
     
            With NewCheckBox_CEM
     
                .Name = "CEM" & I
                .Caption = .Name
                .Top = 20 * I
                .Width = 100
                .Height = 20
     
            End With
     
        Next I
     
    End Sub
     
    Private Sub CommandButton1_Click()
     
        Dim Ctrl As Object
     
        For Each Ctrl In Me.Controls
     
                'si c'est une case à cocher et qu'elle est true
                If TypeName(Ctrl) = "CheckBox" And Ctrl.Value = True Then
     
                    MsgBox Ctrl.Name
     
                End If
     
        Next
     
    End Sub
    Hervé.

  5. #5
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    dommage

    j'ai porté ton code dans un fichier neuf,
    j'ai crée un userform

    j' ai lancé ta macro

    et je n'ai eu aucun résultat

    je suis ( boulot oblige) encore en office 2000.

    je crois vraiment qu'il ya qqch en plus à faire pour rendre actif les CB créés.
    mais j'arrive pas à savoir ce que c'est.

  6. #6
    Expert éminent
    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
    Points : 6 871
    Points
    6 871
    Par défaut
    Re,

    Avant de poster le code tu pense bien que je l'ai testé ! Je ne vois pas ce qui cloche, je suis au boulot sur Excel 2003 donc quasi identique à 2000.
    As-tu coché au moins une des cases ?

    Hervé.

  7. #7
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    ok merci ton code marche si on rajoute

    Me.show 0 au début de ton prog appelé par le bouton.

    je vais essayé de l'utiliser pour mon projet

    merci encore Theze & à plus
    Pat

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

Discussions similaires

  1. Utiliser les informations crées par un programme avec IDle
    Par magalii dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 23/04/2015, 02h01
  2. Réponses: 8
    Dernier message: 08/04/2008, 10h05
  3. verification etat de checkbox (créée par code)
    Par balabonov dans le forum Windows Forms
    Réponses: 15
    Dernier message: 21/12/2007, 10h09
  4. Réponses: 9
    Dernier message: 15/12/2007, 13h25
  5. coché tous les checkbox généré par php
    Par Henry9 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/07/2007, 13h13

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