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 :

Boucle pour détecter que dans un groupe de CheckBox, tous sont FALSE à un moment donné [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Pensionné du service public
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné du service public
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Boucle pour détecter que dans un groupe de CheckBox, tous sont FALSE à un moment donné
    Bonjour,

    J’ai dans un USF une Combo qui liste des médicaments et 4 CheckBox relatifs à la posologie du remède sélectionné. Ces 4 contrôles correspondant à divers moments de la journée (matin, midi, soir et nuit). Ils peuvent être tous sélectionnés ou seulement quelques-uns. Par contre, s’ils sont tous décochés au moment de la validation, je voudrais qu’un message apparaisse pour avertir l’utilisateur de cette anomalie. Donc, j’ai besoin d’aide pour réaliser une boucle qui détecte que tous les CheckBox sont FALSE et qui empêche la validation tant qu’il n’y a pas au moins un TRUE.

    Merci d’avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Si les checkbox ont le même nom avec le chiffre qui est différent (noms par défaut), tu peux vérifier avec le nom.
    Par contre, si les noms sont différents d'un à l'autre, tu peux vérifier par le type de contrôle.

    Ici, j'utilise un bouton de commande pour faire la vérification, mais ça peut se faire autrement...

    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
    Private Sub CommandButton1_Click()
        If AuMoinsUnCoché Then
            MsgBox "Au moins un checkbox est coché"
        Else
            MsgBox "Aucun checkbox n'est coché"
        End If
    End Sub
     
    Function AuMoinsUnCoché() As Boolean
        Dim Ctl As Control
     
        For Each Ctl In Me.Controls
            If TypeOf Ctl Is MsForms.CheckBox Then
                If Ctl.Value = True Then
                    AuMoinsUnCoché = True
                    Exit Function
                End If
            End If
        Next
    End Function
    MPi²

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonsoir,

    En même temps cette idée de faire une boucle pour tester l'état de 4 bits c'est bien ce compliquer la vie pour rien.. .. pourquoi ne pas tout simplement tester l'état de ces bits avec un if et des and ? Le code serait beaucoup plus lisible..

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    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 617
    Points : 5 912
    Points
    5 912
    Par défaut
    pourquoi ne pas tout simplement tester l'état de ces bits avec un if et des and ?
    Effectivement, pour 4 contrôles, on peut faire plus simple...
    MPi²

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Deuxième essai pour le fichier-joint. Cette fois, le zip n'est pas vide.

    Je vais essayer d'effacer mon autre réponse.
    Fichiers attachés Fichiers attachés
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CheckBox1 + CheckBox2 + CheckBox3 + CheckBox4 = false then msgbox "ERR" : Exit sub

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par rdurupt Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If CheckBox1 + CheckBox2 + CheckBox3 + CheckBox4 = false then msgbox "ERR" : Exit sub
    Bonsoir,
    pourquoi ne pad utiliser des opèrateurs binaires pour une opèration binaire ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Je ne me suis pas posé la question mais oui

    De tous les façons un Or est égale à + et un And à * ça fait moins à écrire! Dans ce cas de figure

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

Discussions similaires

  1. Conserver les choix effectuées dans un groupe de Checkbox
    Par sisiniya dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/05/2009, 12h41
  2. Réponses: 3
    Dernier message: 23/12/2008, 22h34
  3. [MySQL] boucle pour chaque entrée dans un champ
    Par boubourse92 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/11/2008, 01h52
  4. Réponses: 8
    Dernier message: 20/04/2007, 17h23
  5. Réponses: 3
    Dernier message: 11/01/2006, 17h44

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