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 :

Contrôles (CheckBox) sur une feuille de calcul


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
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Par défaut Contrôles (CheckBox) sur une feuille de calcul
    Bonjour à tous,

    Je tente de proposer un fichier de mise à jour de données via un tableau composé de 16 lignes. A chaque ligne correspond un donnée et une CheckBox y est asssociée. J'ai donc 16 cases à cocher sur ma feuille. La procédure que je veux mettre en place consiste à cocher la ou les case(s) correspondant à la ou les donnée(s) à modifier. En fonction de la valeur des cases cochées ( Value = True), diverses boites de dialogue apparaitront pour entrer les nouvelles données.
    Mon problème est d'accèder aux valeurs de ces CheckBox. Tout ce que j'ai vu pour le moment, ce sont des collection dans des UserForm et non dans une feuille de calcul. Comment donc les déclarer (sous forme de collection ou autre), y accéder (impossible par une boucle For Each CheckBox in Worksheet("Feuil1").Controls) ?

    Merci d'avance pour vos propositions

  2. #2
    Invité
    Invité(e)
    Par défaut


    Tu peux en revanche les sélectionner un par un et récupérer la valeur,
    1 si la case est cochée

    Il faut que les cases à cocher soient numéroter de 1 à 16
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      For I = 1 To 16
        ActiveSheet.Shapes("Check Box " & I).Select
        VChk = Selection.Value
      Next
    Cordialement

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Par défaut
    Salut Bruno,

    Merci de ta réponse. Cependant, j'ai une "erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet" sur la commande "VCk = Selection.Value"
    J'ai déclarer VCk en booléen et en chaine de caractère mais rien n'y fait.
    N'étant pas expert en VBA, je pensais pouvoir déclarer les checkbox dans une collection, mais comment faire lorsque les controles sont sur une feuille de calcul ?

  4. #4
    Invité
    Invité(e)
    Par défaut


    Tout dépends comment tu as créé tes CheckBox,
    1) par la boite à outils : "boite à outils Controles"
    Le nom de tes objets = Shapes("CheckBox1"), etc...
    SANS ESPACE

    2) par la boite à outils "Formulaires"
    Le nom de tes objets = Shapes("Check Box 1"), etc...
    AVEC DES ESPACES

    Il faut que tu vérifies que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For I = 1 To 16
        ActiveSheet.Shapes("Check Box " & I).Select
    ou
        ActiveSheet.Shapes("CheckBox" & I).Select
      Next
    sélectionne bien chaque case à cocher !
    Si c'est le cas,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim VChk ' tout simplement
    VChk = Selection.Value
    , ne doit pas te donner d'erreur

    Sinon, il y a un problème !
    tu as peut être renommé tes cases à cocher !?

    A+

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 15
    Par défaut
    C'était bon pour l'écriture de CheckBoxn, j'ai corrigé la déclaration de VChk et quelques cases sont cochées mais rien n'y fait.

    Ce sera peut-être plus clair si je te montre mon bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim I As Long
        Dim VChk    
     
        For I = 1 To 16
            ActiveSheet.Shapes("CheckBox" & I).Select
            VChk = Selection.Value
            If VChk = True Then 'Cette boucle if pour tester si mon code qui suit sera accepté
                MsgBox (I) 'Histoire de faire quelque chose
            End If
        Next
    Lorsque je l'exécute, j'ai toujours le même message d'erreur '438' "Propriété ou méthode non gérée par cet objet" sur VChk = Selection.Value
    Il est vrai que j'avais renommé mes checkbox mais je leur ai réaffectés leurs valeurs initiales (CheckBox1, 2, 3, ... ).

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour

    tu peux tester


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim Obj As OLEObject
     
        For Each Obj In Feuil1.OLEObjects
            If TypeName(Obj.Object) = "CheckBox" Then
                    If Obj.Object.Value = True _
                        Then MsgBox Obj.Name & " =Vrai"
            End If
        Next Obj


    michel

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/04/2011, 15h10
  2. Identifier le contrôle actif dans une feuille de calculs
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/03/2008, 18h47
  3. Fixer l'userform sur une feuille de calcul.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/12/2007, 17h45
  4. Grouper les contrôles sur une feuille de calcul
    Par stos dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/09/2007, 15h11
  5. Comment générer du code sur une feuille de calcul?
    Par mardona dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/05/2007, 16h20

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