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 :

Test de case à cocher


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut Test de case à cocher
    Bonjour

    J'ai placé deux cases à cocher sur une feuille de calcul.
    La première est cochée et l'autre non.

    A l'exécution du code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Caseàcocher2_QuandClic()
      Dim i As Integer
      For i = 1 To 2
      If ActiveSheet.CheckBoxes(i).Value = True Then _
           MsgBox "Case " + Str(i) + " cochée" Else _
           MsgBox "Case " + Str(i) + " non cochée"
      Next
    End Sub
    , le message "non coché" m'est renvoyé pour les deux cases.

    Comment cela est-il possible ?

    Merci d'avance pour votre réponse

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    En VBA il n'y a pas d'indexation des contrôles, il faut tester le dernier chiffre du nom
    du genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Caseàcocher2_QuandClic()
      Dim i As Integer
        If ActiveSheet.CheckBoxes1.Value = True Then _
           MsgBox "Case " + Str(i) + " cochée" Else _
           MsgBox "Case " + Str(i) + " non cochée"
        end if
        If ActiveSheet.CheckBoxes2.Value = True Then _
           MsgBox "Case " + Str(i) + " cochée" Else _
           MsgBox "Case " + Str(i) + " non cochée"
        end if
      End Sub
    Cherche dans le forum, il y à des exemples pour travailler sur des collections.
    A+

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Pourtant mon code ne donne aucun message d'erreur.

    Par contre ton instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         If ActiveSheet.CheckBoxes1.Value = True
    donne l'erreur d'exécution 438
    Propriété ou méthode non gérée par cet objet

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    J'ai repris le nom que tu donne, mais si c'est le nom d'origine il n'y a pas de eS au bout de CheckBox1
    et j'ai testé..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CheckBox1_Click()
        e = CheckBox1.Value
        If CheckBox1.Value Then
            Debug.Print "Vrai"
        Else
            Debug.Print "Faux"
        End If
    End Sub
    C'est conforme.
    A-tu chercher sur le forum comme dit ci-dessus ?
    A+
    EDIT:
    Et comme tu nomme CheckBoxes(i), il n'y à pas d'erreur parce que VBA le considére comme un tableau Variant.
    EDIT 2:
    Bon, j'ai chercher pour toi voir le 2ém code de ce lien par Ouskel'n'or

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Ca ne marche pas, à mon avis parce que j'ai une version française de Office 2003.
    C'est la raison pour laquelle l'affectation de macro à la case à cocher génère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sub Caseàcocher2_QuandClic()
    plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub CheckBox1_Click()
    J'ai donc essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If  Caseàcocher2.Value Then
            Debug.Print "Vrai"
        Else
            Debug.Print "Faux"
        End If
    Là, j'ai l'erreur "Objet requis"

  6. #6
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    J'ai trouvé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Caseàcocher2_QuandClic()
      Dim i As Integer
      For i = 1 To 2
      If ActiveSheet.CheckBoxes(i).Value = xlOn Then _
           MsgBox "Case " + Str(i) + " cochée" Else _
           MsgBox "Case " + Str(i) + " non cochée"
      Next
    End Sub

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

Discussions similaires

  1. [MIGRATION] champ de type "case à cocher"
    Par The_Nail dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 10/05/2011, 11h07
  2. Test sur multiple cases à cocher
    Par Gueuz dans le forum Langage
    Réponses: 5
    Dernier message: 24/02/2009, 10h55
  3. [Tableaux] Test d'une case à cocher
    Par bodysplash007 dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2007, 10h13
  4. Test de case a cocher sur bouton
    Par 12_darte_12 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/03/2007, 14h49
  5. tutoriel cafeine multicritére: test sur case à cocher
    Par fast&furious dans le forum Access
    Réponses: 2
    Dernier message: 13/10/2005, 20h05

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