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 :

Initialisation checkbox enabled


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut Initialisation checkbox enabled
    Bonjour,

    J'ai créé des checkbox avec tous un nom différent (chkTous, chkFacture...)
    J'aimerais tous les activer ou désactiver (Enabled)
    Tous les exemples que j'ai trouvé sont avec un nom "CheckBox"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function ActiveChk(bActif As Boolean)
    Dim c As Object
    For Each c In ActiveSheet.OLEObjects
        If InStr(1, c.Name, "CheckBox") > 0 Then
            c.Object.Venable = bActif
        End If
    Next
    End Function
    Merci de vos retour
    FikoU

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    peut-être comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function ActiveChk(bActif As Boolean)
    Dim c As Object
    For Each c In ActiveSheet.OLEObjects
        If c.progID = "Forms.CheckBox.1" Then
            c.Object.Enabled = bActif
        End If
    Next
    End Function

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici une autre approche s'il s'agit d'activer et désactiver plusieurs contrôle à la fois

    On insère les contrôles dans un Frame et au lieu de boucler sur l'ensemble des contrôles, on change la propriété Enabled du Frame ce qui bloque ou débloque l'accès à tous les contrôles qui se trouvent à l'intérieur du Frame

    La procédure qui gère la propriété Enabled du Frame ainsi que la propriété Caption du bouton bascule (ToggleButton)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub EnableDisable()
      ' Modifie la propriété Enabled du Frame
      Dim Msg As Variant
      Msg = Array("Activer", "Désactiver") ' Message à afficher dans le bouton bascule
      With Me
      .Frame1.Enabled = .ToggleButton1.Value
       With .ToggleButton1: .Caption = Msg(Abs(.Value)): End With
      End With
    End Sub
    Les deux procédures événementielles qui invoquent cette procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
      EnableDisable
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ToggleButton1_Click()
      EnableDisable
    End Sub

    Nom : 231102 dvp Enable_Disable With ToggleButton.png
Affichages : 131
Taille : 6,5 Ko
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Citation Envoyé par fikou Voir le message
    Bonjour,

    J'ai créé des checkbox avec tous un nom différent (chkTous, chkFacture...)
    J'aimerais tous les activer ou désactiver (Enabled)
    Tous les exemples que j'ai trouvé sont avec un nom "CheckBox"
    Bonjour, indépendamment de l'excellente solution fournie par Philippe (que je salue), qu'est-ce qui t'empêchait de remplacer "CheckBox" par "chk" dans ta fonction ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Bonjour à tous et merci,
    Mes contrôles sont sur une feuille et non dans une forms.

    Cela ne fonctionne pas la condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If c.progID = "Forms.CheckBox.1" Then
    N'est pas remplie
    Idem avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If c.progID = "Forms.Chk.1" Then
    Cordialement
    FikoU

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, tu peux faire comme ceci:

    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
    Sub ActiverDesactiverCheckBoxes()
        Dim ws As Worksheet
        Dim cb As Object
     
        ' Spécifie la feuille sur laquelle se trouvent tes contrôles ActiveX
        Set ws = ThisWorkbook.Sheets("Feuil1")
     
        ' Boucle à travers tous les contrôles ActiveX sur la feuille
        For Each cb In ws.OLEObjects
            ' Vérifie si le contrôle est une case à cocher ActiveX
            If TypeOf cb.Object Is MSForms.CheckBox Then
                ' Active ou désactive la checkbox en fonction de son état actuel
                cb.Object.Value = Not cb.Object.Value
            End If
        Next cb
    End Sub

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    314
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 314
    Par défaut
    Bonjour à tous,
    Merci pour vos réponses.
    J'ai opté pour la solution de Franc et cela fonctionne.
    Si je veux exclure une checkbox d'après son nom ?

    Dans vos réponses il y à été fait mention de Forms. Mes contrôles sont sur une feuille.
    Quelle avantage de faire une forms ?

    Merci

    FikoU

  8. #8
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut, modifie cette ligne alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If TypeOf cb.Object Is MSForms.CheckBox And cb.Name <> "CheckBox1" Then

Discussions similaires

  1. Probleme initialisation checkBox
    Par xavpiaf dans le forum Flex
    Réponses: 6
    Dernier message: 02/06/2009, 10h42
  2. Réponses: 6
    Dernier message: 03/07/2006, 14h23
  3. [PowerBuilder 10] checkbox enabled
    Par Rycku dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 24/05/2006, 09h50
  4. [SWT] CheckBox et Enabled(false)
    Par BiM dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 16/12/2005, 12h14
  5. Réponses: 4
    Dernier message: 29/07/2005, 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