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 :

CheckBox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut CheckBox
    Bonjour,

    J'ai un problème avec les checkBox.

    Je dois programmer un questionnaire qui comprendra n questions. Chaque questions aura 5 réponses possible, et donc 5 CheckBoxes par question.

    Je dois ensuite analyser les réponses, et en plus je dois programmer un questionnaire qui puisse être modifié (ajout ou suppression de questions).

    C'est la ou je galère, je n'arrive pas à rendre variable la déclaration des CheckBoxes.

    Pour l'instant mon code ressemble à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     If CheckBox1.Value = True Then Maitrise(1, 1) = 1
        If CheckBox2.Value = True Then Maitrise(1, 2) = 2
        If CheckBox3.Value = True Then Maitrise(1, 3) = 3
        If CheckBox4.Value = True Then Maitrise(1, 4) = 4
        If CheckBox5.Value = True Then Maitrise(1, 5) = 5
     
        If CheckBox6.Value = True Then Maitrise(2, 1) = 1
        If CheckBox7.Value = True Then Maitrise(2, 2) = 2
        If CheckBox8.Value = True Then Maitrise(2, 3) = 3
        If CheckBox9.Value = True Then Maitrise(2, 4) = 4
        If CheckBox10.Value = True Then Maitrise(2, 5) = 5
    Maitrise(i, j) étant une matrice rassemblant les données.

    Le problème est que si je rajoute une question entre la 1ère et la 2ème, le numéro des ChecBoxes rajoutés vont débuter à 11, donc je n'arrive pas à les traiter.

    Je ne sais plus comment faire.

    Si quelqu'un à une idée, ça m'aiderait vraiment.

    D'avance merci beaucoup.


  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    le mieux c'est de mettre une seule réponse possible

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    bon, d'accord, je t'aide un peu
    le mieux en fait serais , je pense , que tu renomme tes textbox. tu par du haut vers le bas, et tu appelle tes textbox Q1,Q2,Q3...
    je sais pas sous quelle form tu les as, et j'ai peur que ce soit directement sur le feuille, auquel cas, je suis pas trop doué pour manipuler ces objet là, donc au niveau code, je peux pas t'aider. mais en gros c'est ça. ou alors tu te refere au titre question 1 et a leur position, je sais pas exactement, a toi de trouver ta combine.
    en esperant que je te sois utile

  4. #4
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir à tous,

    je suis comme alsimbad, je ne sais pas si tu travailles sur un formulaire ou directement sur ta feuille.

    Le principe, si j'ai bien compris ta demande reste le même.

    Si tu travaille sur un UserForm, essaie le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    cpt = 0: j = 1: k = 1
    For Each ctrl In Me.Controls
      If ctrl.Name Like "CheckBox#*" Then cpt = cpt + 1
    Next ctrl
    For i = 1 To cpt
      If Controls("CheckBox" & i) Then
        Maitrise(k, j) = j
        If i Mod 5 = 0 Then k = k + 1: j = 1 Else j = j + 1
      End If
    Next
    si tu es directement sur ta feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    cpt = 0: j = 1: k = 1
     
    With ActiveSheet
      For Each obj In .OLEObjects
        If obj.progID Like "Forms.CheckBox.1" Then cpt = cpt + 1
      Next
      For i = 1 To cpt
        If .OLEObjects("CheckBox" & i).Object Then
          Maitrise(k, j) = j
          If i Mod 5 = 0 Then k = k + 1: j = 1 Else j = j + 1
        End If
      Next
    End With
    en espérant t'aider
    cordialement
    fred65200

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Par défaut
    Merci beaucoup messieurs pour vos réponses.

    Pour info je travaille directement sur la feuille et non dans un formulaire.

    J'ai essayé ton code, et Excel me renvoi un message d'erreur: "Impossible de lire la propriété OLEObjects de la classe Worksheet" et me souligne en jaune la ligne : "If .OLEObjects("CheckBox" & i).Object Then" avec le débogage.

    Je vous avoue que je suis complétement perdu avec cette procédure donc je ne sais pas trop quoi faire.

    Si vous avez une solution je suis preneur car je dois rendre le projet prochainement et je patauge grave.

    Merci milles fois d'avance.

  6. #6
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour,
    Je crois que tu as cette erreur car tes CheckBoxes ne sont pas nommées
    CheckBox1
    CheckBox2
    ........
    ........
    CheckBoxN
    CheckBoxN+1

    il doit en manquer un quelque part dans la suite 1, 2, 3,..., n, n+1

    Sur une copie de ton classeur,

    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      For Each obj In .OLEObjects
        If obj.progID Like "Forms.CheckBox.1" Then cpt = cpt + 1
    Next
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      For Each obj In .OLEObjects
        If obj.progID Like "Forms.CheckBox.1" Then cpt = cpt + 1: obj.Name = "CheckBox" & cpt
    Next
    et reteste la macro

    Tiens nous au courant

  7. #7
    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
    Citation Envoyé par beechin Voir le message
    Bonjour,

    J'ai un problème avec les checkBox.

    Je dois programmer un questionnaire qui comprendra n questions. Chaque questions aura 5 réponses possible, et donc 5 CheckBoxes par question.

    Je dois ensuite analyser les réponses, et en plus je dois programmer un questionnaire qui puisse être modifié (ajout ou suppression de questions).
    Il y à quelque chose qui cloche... et si l'utilisateur coche tout les checkBox? que fait-tu ?
    Il serrait plus adéquoit d'employer des optionButton, de les grouper par 5 et de tester dans chaques groupes celui qui est coché.!! Il me semble que ca répond mieux à ce que tu veux faire.
    A+

Discussions similaires

  1. [JSP]checkbox
    Par orisis dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 16/04/2013, 13h53
  2. [VB.NET] Insérer une colonne de CheckBox dans un DataGrid
    Par Manue.35 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/05/2003, 11h44
  3. Checkbox
    Par rgarnier dans le forum XMLRAD
    Réponses: 11
    Dernier message: 06/03/2003, 10h48
  4. Couleur d'un CheckBox
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/07/2002, 14h48
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

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