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 :

Checkbox_change dans une procédure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Par défaut Checkbox_change dans une procédure
    Bonjour, est-il possible d'écrire une procédure comme cela?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    sub check (c1 as checkbox, c2 as checkbox)
    on c1_change
    if c2.value=true then 
    c1.value=false
    end if
    end sub
    Merci.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub c1_Change()
     
    If c2 Then c1 = False
    End Sub

  3. #3
    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
    Par défaut
    Bonjour,

    On pourrait aussi y aller comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub C1_Click()
        C2.Value = Not C1.Value
    End Sub
     
    Private Sub C2_Click()
        C1.Value = Not C2.Value
    End Sub
    Mais ça donne la même chose que des OptionButtons.
    Donc pourquoi ne pas les utiliser ?

  4. #4
    Membre averti
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Par défaut
    J'ai un userform avec une centaine de checkbox pour lesquelles je doit faire ces traitements dans les deux sens. C'est pour cela que je veux faire une procédure pour l'appeler.

  5. #5
    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
    Par défaut
    C'est pour cela que je veux faire une procédure pour l'appeler
    Pour appeler quoi ?

    Es-tu certain d'avoir besoin d'une centaine de checkbox ?
    Il n'y aurait une autre manière de procéder ?
    Ça fait beaucoup de contrôles à gérer...

  6. #6
    Membre averti
    Inscrit en
    Juin 2012
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 17
    Par défaut
    Appeler la procédure.
    Non il n'y a pas d'autre façon malheureusement.

  7. #7
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,

    Si le but est de mettre tous les "CheckBox" à False à part celui qui est cliqué (quoique comme écrit Parmi "utiliser les OptionButtons") et si ceux-ci sont placés sur la feuille (car il faudrait adapter sur un USF)
    Dans ThisWorkbook, ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Workbook_Open()
    Dim Cl As AChekBox
    Set Collect = New Collection
    For Each Obj In Feuil1.OLEObjects
        If TypeOf Obj.Object Is MSForms.CheckBox Then
            Set Cl = New AChekBox
            Set Cl.GrChekBox = Obj.Object
            Collect.Add Cl
        End If
    Next Obj
     
    End Sub
    dans un module quelconque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Collect As Collection
    Public Obj As OLEObject
    Dans un module de classe renommé "AChekBox"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public WithEvents GrChekBox As MSForms.CheckBox
     
    Private Sub GrChekBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    For Each Obj In Feuil1.OLEObjects 'attention au nom de la feuille
        If TypeOf Obj.Object Is MSForms.CheckBox Then
          If Obj.Name <> GrChekBox.Name Then
            Obj.Object = False 'ou ce que tu veux
          End If
        End If
    Next Obj
     
    End Sub
    Ensuite, enregistrer (sous un autre nom pour essai), fermer et ré-ouvrir

    A voir si ça correspond à ce que tu veux mais tu devrais pouvoir adapter
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Vérification du type de données dans une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/09/2004, 11h20
  3. Marquer une pause dans une procédure stockée
    Par PéPénet dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2003, 10h42
  4. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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