Problème avec checkbox

baboss

XLDnaute Nouveau
Bonjour,

mon problème a peu être déja était posté mais je n'ai pas trouver la solution a mon problème.

Je doit faire une petite application excel pour saisir les réponse a un questionnaire.

Le questionnaire est composé de 26 questions pour lesquels ils y a 4 choix possible (pas content à content).

J'ai pensé faire un formulaire avec les 26 questions comprenant chacune 4 case a cocher. (donc 104 checkbox)

J'ai nomé mes checkbox Q1_1, Q1_2, Q1_3,Q1_4,Q2_1 etc.
J'ai nomé mes checkbox en fonction de la question auquel ils sont reliés (Q1=question 1) et de la valeur que je veux récupérer si elle est coché (1,2,3 ou4)
Les questions ne sont pas dans l'ordre (Q8 puis Q2 puis Q5 puis Q4 etc)

J'ai essayer faire un code avec 2 boucles for (i =1 a 26 , j =1 a 4)
z une variable string récupère une chaine de caractere du type
Code:
z="Q" & [i] & "_" & [j]
z m'affiche bien les valeur Q1_1 etc.
je voulais faire quelque chose du genre:

Code:
if z.value=true then
x=split(z,"_")
y=x(0)
w=x(1)
end if

pour récupérer le nom de la question exemple "Q1"
et la valeur du choix (1 à 4)

Mais Z.value ne marche pas bien sur.

Alors si vous voyez comment faire merci car j'ai bcp de mal.

merci
 

Pierrot93

XLDnaute Barbatruc
Re : Problème avec checkbox

Bonjour,

regarde le code ci-dessous si il peut t'aider, pour des contrôles placés directement sur une feuille de calcul, à adapter à ton projet :

Code:
Dim i As Byte, j As Byte, z As String
i = 2
j = 3
z = "Q" & i & "_" & j
If Sheets("Feuil1").OLEObjects(z).Object.Value = True Then MsgBox "coché"

bonne journée
@+
 

baboss

XLDnaute Nouveau
Re : Problème avec checkbox

Bon j'ai trouvé une solution avec ce code.
Code:
Private Sub CommandButton1_Click()
Dim n As Variant
Dim num As Integer
Dim Q As String
Dim z As String
Dim X As Variant
Dim i, j As Integer
Dim Ctrl As Control

For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then
    For i = 1 To 1 '26

        For j = 1 To 1
        z = "Q" & [i] & "_" & [j]
        'MsgBox (z)
            If Ctrl.Value = True And Ctrl.Name = z Then
            'MsgBox (Ctrl.Name)
            X = Split(z, "_")
            Q = X(0)
            num = X(1)
            MsgBox (Q)
            MsgBox (num)
            End If
        Next j
    Next i
End If
Next Ctrl
End Sub

ca me donne la première partie du nom du checkbox dans Q et la seconde dans num.
Je devrais pouvoir m'en sortir ac ca.

Désolé du dérangement.
 

baboss

XLDnaute Nouveau
Re : Problème avec checkbox

bon j'ai finit mon programme.
Bon bien sur il est pas tres beau, certain aurai pus faire mieu c'est sur mais il marche c'est l'essentielle.
Bien sur mon programme ne marche que pour ce questionnaire car les questions sont triés d'une certaine facon pour certain calcule.
Mais je vous le met si ca peu aider.
c'est sur la feuille resultat que sont mis les 2 boutons.
La première feuille se sont les question telque sur le questionnaire.
Et la troisieme il y a les formules des différents calcule.
Amusez vous bien
 

Pièces jointes

  • questionnaire.zip
    35.6 KB · Affichages: 23
  • questionnaire.zip
    35.6 KB · Affichages: 23
  • questionnaire.zip
    35.6 KB · Affichages: 24

Discussions similaires

Statistiques des forums

Discussions
312 484
Messages
2 088 786
Membres
103 964
dernier inscrit
utopiK56