case à cocher

Laurent313131

XLDnaute Occasionnel
Bonsoir,

J'ai créée un questionnaire sur Excel avec 52 questions et en face de chaque question j'ai inséré 2 cases à cocher (contrôle de formulaire) Oui ---- Non.

Je voudrais faire une fonction sous VBA pour qu'à la fin du questionnaire, il y ait le nombre de cases Oui cochées et le nombre de cases Non cochées.

Est ce possible ?

Merci.
 

job75

XLDnaute Barbatruc
Re : case à cocher

Bonjour Laurent, le forum,

Il vaut mieux utiliser des boutons d'options plutôt que des cases à cocher.

Pour une même question, les 2 boutons renverront 1 ou 2 dans une cellule liée, par exemple en colonne A.

Pour connaître le nombre de "oui", utiliser la formule =NB.SI(A:A;1) et =NB.SI(A:A;2) pour le nombre de "non".

En VBA, cela donne Application.CountIf([A:A], 1) et Application.CountIf([A:A], 2)

A+
 

kjin

XLDnaute Barbatruc
Re : case à cocher

Re, bonsoir job,
...J'ai créée un questionnaire sur Excel avec 52 questions et en face de chaque question j'ai inséré 2 cases à cocher (contrôle de formulaire) Oui ---- Non.
Effectivement il faut grouper les boutons, et pour cela les créer avec la Boîte à outils Contrôle.
Et pourquoi utiliser les contrôles ActiveX ?
Ou mon fichier n'est pas passé...!
A+
kjin

Edit: Désolé Job, nos messages se sont croisés, mais je me disais bien...
 
Dernière édition:

Laurent313131

XLDnaute Occasionnel
Re : case à cocher

bonsoir,

Alors j'ai bidouillé une petite condition If et j'aimerai qu'en fonction du score, une msgbox s'affiche. Je m'explique : Si le score est entre 0 et 10, je veux qu'une msgbox apparaissent avec " Aucun risque de surentraînemnt " écrit à l'intérieur. Si le score est entre 11 et 20, la msgbox affichera "Risque léger de surentraînement".... ....

Voici mon code :

Sub boutonsoption()

Dim Score As Integer
Dim Etat As String

Score = Range("c55")

If Score > 0 And Score <= 10 Then
Etat = "Aucun risque de surentraînement"

ElseIf Score >= 11 And Score <= 20 Then
Etat = "Risque léger de surentraînement"

ElseIf Score >= 21 And Score <= 25 Then
Etat = "Risque élevé de surentraînement"

Else: Etat = " Surentraînement"

End If

Range("B57") = Etat

MsgBox "Mention", vbExclamation, "Résultat"

End Sub

En gros je voudrais remplacer le "Etat = ..." par une msgbox...

Merci
 
Dernière édition:

Bigfish

XLDnaute Occasionnel
Re : case à cocher

Salut,

moi j'aime bien la solution de Kijin ;)

Par ce que 104 controls dans un meme fichier, cela l'alourdi grandement :mad:

Aller pour le plaisir voici une solution dans le fichier joint.

un inconvenient quand meme a cette solution, est que l'on doit double cliquer si l'on reste sur la meme cellule.

A+ :)

PS il est possible que vous rencontriez quelques difficultés du a ma version excel en anglais
 

Pièces jointes

  • Pseudo CheckBox.xls
    32.5 KB · Affichages: 80
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 237
Membres
103 497
dernier inscrit
JP9231