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 :

Compteur: Checkbox & Label


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Par défaut Compteur: Checkbox & Label
    Bonjour,

    je vais essayer d'etre clair : je pense que j'ai besoin d'un compteur.
    Je souhaite enregistrer le Caption d'un Label si la checkbox en face est cochée.

    Exemple

    Checkbox1 Label1
    Checkbox2 Label2

    Si Checkbox1 est cochée alors enregistre le caption de Label1 dans une variable String
    Si CheckBox1 ET checkBox2 sont cochées alors enregistre Label1 ET Label2 dans une variable

    Le chiffre de la Checkbox correspondra toujours au chiffre du label en face.

    Le but étant ensuite d'afficher un msgbox pour dire à l'utilisateur quelles checkbox il a choisi.

    Merci à vous

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Lors de la validation via un bouton sur le UserForm, cela devrait ressembler à un truc du style :
    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
    Private Sub CommandButton1_Click()
    Dim C As Control, Nb As Byte, x As Byte, Var As String
     
    'comptage des Checkbox insérés sur le UserForm
    For Each C In Me.Controls
        If TypeOf C Is MSForms.CheckBox Then Nb = Nb + 1
    Next C
     
    'bouclage sur les CheckBox
    For x = 1 To Nb
        If Me.Controls("CheckBox" & x) = True Then
        'si la Checkbox est validée, mémorisation de la valeur du label correspondant
        Var = Var & Me.Controls("Label" & x).Caption & Chr(10)
        End If
    Next x
     
    MsgBox "les CheckBox validées sont :" & Chr(10) & Var
     
    End Sub

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    bonjour fring

    beau code

    si je peut me permettre dans la déclaration des variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim C As Controls, Nb As Byte, x As Byte, Var As Str
    il faut supprimer le s de Controls sinon il y a une imcompatibilité de type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim C As Control, Nb As Byte, x As Byte, Var As Str
    bonne journée

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Exact merci oeil de Lynx j'ai codé à la volée et le "s" est venu se coller à l'insu de mon plein gré (c'est rectifié)

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Citation Envoyé par fring Voir le message
    Exact merci oeil de Lynx j'ai codé à la volée et le "s" est venu se coller à l'insu de mon plein gré (c'est rectifié)
    J'aimerais bien sortir du code comme ça à la volée car moi il me faut un peut plus de temps
    encore bravo

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Par défaut
    Salut,
    Pour revenir au code proposé par fring
    (j'espère ne pas dire de bêtises)

    Imaginons 5 Checkbox cochés comme suit.

    CheckBox1 = True
    CheckBox2 = True
    CheckBox3 = True
    CheckBox4 = False
    CheckBox5 = True

    Tu vas donc compter 4 Checkbox coché et boucler des CheckBox1 à CheckBox4

    Tu vas donc oublier CheckBox5 (qui lui est coché).

    Je pense qu'il faut donc mieux boucler sur tout les CheckbOx et isoler le Chiffre si besoin pour déterminer quel Label récupérer.

    (pas sûr d'avoir été clair).

    @+
    Julien

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 22
    Par défaut
    totalement impressionnant

    Après adaptation du code à mon cas personnel au niveau du nom des CheckBox et des labels
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.Controls("CheckBox" & x) = True Then
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.Controls("CB_" & x) = True Then
    Cela marche parfaitement point -> .

    Désolé Epsylon_9 mais je vais devoir te contredire, il ne s'arrete pas à la première case non-cochée.

    Si je peux me permettre une question d'odre métaphysique, quelle est ta méthode, fring, pour déterminer que telle chose doit etre une variable, que telle autre doit etre un compteur incrémenté pour etre repris dans telle procédure ?
    Je veux dire : est-ce qu'il y a une méthode de travail, voire de réflexion particulière, un "truc", pour organiser l'écriture de son code ?

    En tout cas merci, et n'oubliez pas que : i'll be back !
    à Zihack

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

Discussions similaires

  1. Boucle sur checkbox et label
    Par rakhann974 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 23/10/2013, 07h49
  2. aligner checkboxes et label
    Par SpaceFrog dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 09/10/2007, 14h34
  3. [débutant] [VB.NET] Timer + label + checkbox ...
    Par Amenos dans le forum Windows Forms
    Réponses: 14
    Dernier message: 27/03/2006, 13h26

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