VBA pour notation d'un QCM

Bonjour,

Nous avons un système de boitiers électroniques qui fournit une feuille excel avec les résultats présentés de cette façon :

image2

dans mon classeur Excel, j'ai également créé un tableau indiquant les réponses correctes pour chaque question

q1 --> ABC

q2 --> BC

q3 --> AB

etc.

Je cherche une formule VBA permettant de comparer la réponse de l'utilisateur avec la réponse correcte et :

  • Attribuer 1 pour chaque réponse correcte
  • Soustraire -1 (pénalité) en cas de réponse incorrecte.

Exemple 1 :

propositions du QCM : ABCDE

Réponse correcte attendue : BCE

réponse de l'utilisateur : BCE

note = 1 (C) + 1 (B) + 1 (E) = 3

Exemple 2 :

propositions du QCM : ABCDE

Réponse correcte attendue : ABE

réponse de l'utilisateur : ABCE

note = 1 (A) + 1 (B) + 1 (C) - 1 (E) = 3

Merci pour votre aide.

Bonjour si tu as un fichier à nous donner ca sera plus simple que de créer nous même un fichier.

Bien à toi

Voici un fichier d'exemple.

L'onglet "réponses correctes" contient les réponses attendues.

Dans l'onglet "calculs" j'ai mis en rouge les résultats attendus par la macro.

L'utilisateur1 a répondu tout juste.

L'utilisateur2 a fait des erreurs.

merci

40exemple.xlsx (11.38 Ko)

Bonjour,

une proposition avec une fonction personnalisée, voir utilisation dans le fichier joint.

Function points(reponse_attendue, reponse)
    For i = 1 To Len(reponse)
        If InStr(reponse_attendue, Mid(reponse, i, 1)) > 0 Then pts = pts + 1 Else pts = pts - 1
    Next i
    points = pts
End Function
16obd.xlsm (17.02 Ko)

merci pour cette formule.

dans le fichier joint, j'ai modifié la question 4.

Je devrait normalement avoir 1 point et non 0, non ?

réponse correcte : ABCD

réponse utilisateur : ABE

calcul note : 1 + 1 - 1 = 1

12obd2-xlsx.xlsm (17.26 Ko)

re-bonjour,

en fait tu n'as pas mis les paramètres dans le bon ordre,

=points(reponse_attendue;reponse_donnée)

et non

=points(reponse_donnée;reponse_attendue)

comme tu l'as mis dans ton classeur.

J'aurais dû le préciser dans ma réponse initiale.

Voila essaie de rajouter des questions à la suite et ou de faire des tests je te laisse ça là. bien à toi

28exemple.xlsm (18.58 Ko)

re-bonjour,

en fait tu n'as pas mis les paramètres dans le bon ordre,

=points(reponse_attendue;reponse_donnée)

et non

=points(reponse_donnée;reponse_attendue)

comme tu l'as mis dans ton classeur.

J'aurais dû le préciser dans ma réponse initiale.

Effectivement, j'aurais pu m'en rendre compte. Merci beaucoup, cela fonctionne !

Voila essaie de rajouter des questions à la suite et ou de faire des tests je te laisse ça là. bien à toi exemple.xlsm

Merci pour cette solution alternative. Je garde ça dans un coin.

Rechercher des sujets similaires à "vba notation qcm"