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 :

Vérifier une case à cocher


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Points : 35
    Points
    35
    Par défaut Vérifier une case à cocher
    Bonjour à tous,

    Je travaille sur une feuille et je suis incapable de vérifier si ma checkbox est cochée ou non. J'imagine que c'est simple mais ce que j'ai trouvé à maintenant ne marche pas. Je me demandais si vous sauriez identifier ce qui cloche dans mon code.

    disons que je crée la checkbox via vba:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub makecheckbox()
     
    With ActiveCell
        With ActiveSheet.CheckBoxes.Add(Left:=.Left + 2, Top:=.Top + 2, Width:=.Width - 4, Height:=.Height - 3)
            .Name = "editcheck"
            .Characters.Text = "Edit"
        End With
    End With
     
    End Sub
    et qu'ensuite je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub testcheckbox()
     
    If ActiveSheet.CheckBoxes("editcheck") = True Then
    MsgBox "the value is true"
    Else
    MsgBox "the value is false"
    End If
     
    End Sub
    Il retourne toujours "the value is false", cochée ou non.

    j'ai aussi essayé activesheet.shapes("editcheck") = true ainsi que activesheet.checkboxes("editcheck").value = true mais ça ne marche pas.

    Voyez-vous ce qui cloche?
    merci

  2. #2
    Membre habitué Avatar de Basicnav
    Profil pro
    Inscrit en
    Février 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2008
    Messages : 245
    Points : 193
    Points
    193
    Par défaut
    essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub testcheckbox()
     
    If ActiveSheet.CheckBoxes("editcheck").Value = True Then
    MsgBox "the value is true"
    Else
    MsgBox "the value is false"
    End If
     
    End Sub
    tu n'as pas préciser .value dans ton if.

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut
    La case à cocher peut avoir 3 valeurs :

    • coché
    • non coché
    • grisée


    donc il ne faut pas la comparer à Vrai/Faux.

    La case à cocher à la valeur "1" si elle est cochée.


    Complément d'information...

    Oui, il vaut mieux mettre la propriété ".Value" comme le suggère "Basicnav" ( un voisin d'ailleur, bonjour le voisin).

    Il n'y a plus aucun doute sur ce que fera VBA.

    Mais dans ce cas c'est la propriété par défaut.

    ESVBA

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 49
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par ESVBA Voir le message
    La case à cocher peut avoir 3 valeurs :

    • coché
    • non coché
    • grisée


    donc il ne faut pas la comparer à Vrai/Faux.

    La case à cocher à la valeur "1" si elle est cochée.

    ESVBA
    Une petite expression québecoise: dévellopez.com c'est vraiment la coche!

    Ben le voilà le bobo, comme pr04860 et ESVBA ont fait remarquer c'est pas true ou false c'est 1 ou -4146, allez savoir pour le -4146...

    Quoi que si vous savez pourquoi la valeur retournée est -4146 et non 0 éclairez-moi .

    Merci pour votre aide.

    Au sujet de .value, j'avais déjà essayé mais le résultat était malheureusement le même...

    merci encore!

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2021
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Et comment vérifier deux cases à cocher en même temps ?
    Bonjour,

    J'utilise la même formule que vous sauf que j'aimerai vérifier non pas une mais deux cases à cocher en même temps.
    Avec quelque chose du genre : Si "Case à cocher 1" et "Case à cocher 2"=1, alors
    MsgBox "..."

    J'ai essayer pas mal de chose mais je n'arrive pas à résoudre ce problème...
    J'espère que j'aurai une réponse étant donnée que le problème a été résolu il y a bien longtemps.

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

Discussions similaires

  1. [1.x] Vérifier clic sur une case à cocher
    Par blasil64 dans le forum Symfony
    Réponses: 4
    Dernier message: 22/02/2010, 13h44
  2. [AC-2007] Comment vérifier la valeur d'une case à cocher d'une valeur
    Par glooping dans le forum IHM
    Réponses: 1
    Dernier message: 01/10/2009, 17h29
  3. Vérifier une case à cocher
    Par kev484 dans le forum Langage
    Réponses: 7
    Dernier message: 21/10/2008, 19h15
  4. [Forms 6i] Ne chocher qu'une case à cocher.
    Par macben dans le forum Oracle
    Réponses: 1
    Dernier message: 02/12/2005, 15h40
  5. Pb pour récupérer la velur d'une case à cocher
    Par muppetshow dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/04/2005, 21h23

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