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 :

Activer une macro avec des CheckBox [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut Activer une macro avec des CheckBox
    Bonjour

    J'ai une macro avec une foule de checkbox
    Je veux que cette macro s'active automatiquement dès qu'un utilisateur clique sur n'importe laquelle des checkbox
    Quelle est la suite?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Call MaMacro

  3. #3
    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,

    J'ai une macro avec une foule de checkbox
    Dans ce cas, avec un module de classe.
    A mettre dans un module de classe :
    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()
     
        MaMacro GroupeChk
     
    End Sub
    A mettre dans un module standard et à adapter (macro pour l'exemple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub MaMacro(Chk As MSForms.CheckBox)
     
        MsgBox Chk.Caption
     
    End Sub
    A mettre dans le module de ta Form :
    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
     
    Dim Chk() As New Classe1
     
    Private Sub UserForm_Initialize()
     
        Dim Ctrl As Control
        Dim I As Integer
     
        For Each Ctrl In Me.Controls
     
            If TypeName(Ctrl) = "CheckBox" Then
     
                I = I + 1
                ReDim Preserve Chk(1 To I)
                Set Chk(I).GroupeChk = Ctrl
     
            End If
     
        Next Ctrl
     
    End Sub
    Hervé.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2012
    Messages : 121
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par Theze Voir le message
    Bonjour,


    Dans ce cas, avec un module de classe.
    A mettre dans un module de classe :
    .
    Merci Hervé

    Mais y'a quelques trucs que je ne comprends pas bien.
    Je vais mieux vous expliquer mon projet qui est tout simple

    J'ai un formulaire avec une foule de questions
    Chaque question à trois choix de réponse sous la forme de Checkbox
    Il n'y a qu'une seule checkbox qui peut être coché par réponse
    Je n'ai pas envie de programmer chaque groupe de checkbox par groupe de trois.
    J'essaie donc de un programme global qui va tout gérer
    Voici ce que j'ai jusqu'à maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim I As Integer
    For I = 1 To 22
        If ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = True Then
            ActiveSheet.OLEObjects("CheckBox" & I + 1).Object.Value = False
            ActiveSheet.OLEObjects("CheckBox" & I + 2).Object.Value = False
        ElseIf ActiveSheet.OLEObjects("CheckBox" & I - 1).Object.Value = True Then
            ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = True
            ActiveSheet.OLEObjects("CheckBox" & I + 1).Object.Value = False
        ElseIf ActiveSheet.OLEObjects("CheckBox" & I - 2).Object.Value = True Then
            ActiveSheet.OLEObjects("CheckBox" & I - 1).Object.Value = False
            ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = False
        End If
    Next I
    Mon soucis, c'est que pour fonctionner, ce programme doit être activé à chaque événement (chaque fois que quelqu'un clique dans un checkbox)
    Comment amarrer mon programme avec le vôtre.
    Merci

  5. #5
    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,

    Dans ton cas, des boutons d'option seraient plus indiqués. Tu utilise des zones de groupe pour les isoler par trois et comme ça, tu n'as pas à gérer la sélection des uns quand un autre est cliqué ! Teste et reviens avec plus de précisions sur ton formulaire.

    Hervé.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Répondu la même chose là:
    http://www.developpez.net/forums/d14...n-automatique/

    Prière de ne pas commencer plusieurs discussions sur le même sujet.

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

Discussions similaires

  1. [Toutes versions] Affecter un bouton à une macro avec des paramètres
    Par nerixm dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/03/2011, 14h47
  2. [MySQL] Mettre a jour une table avec des checkbox
    Par dlecteur dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/09/2010, 11h50
  3. Filtrer une requête avec des checkbox
    Par prizmose dans le forum Requêtes
    Réponses: 0
    Dernier message: 28/05/2008, 10h31
  4. Où trouver une listbox avec des checkbox dedans ?
    Par zarbiman dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/09/2007, 08h59
  5. [Inno Setup] ajouter une page avec des checkbox
    Par cotede2 dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 28/05/2007, 23h01

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