Formules pour correction automatique d'un questionnaire

Bonjour,

J'ai créé un questionnaire à choix multiples grâce à la Google Apps 'Questionnaire". Les réponses sont collectées sur un fichier Excel et je souhaite créer les formules pour les corriger automatiquement.

Lorsqu'il n'y a qu'une seule réponse possible, j'ai utilisé la fonction "SI" pour comparer la réponse du candidat avec la bonne réponse et ressortir le nombre de points obtenus (ex : =SI(B$1=B$2;1;0) avec la réponse du candidat en A1 et la bonne réponse en A2).

Là où je ne sais plus comment faire c'est lorsqu'il y a plusieurs bonnes réponses. Par exemple pour une question donnée, les réponses 2 et 4 sont correctes et apportent 0.5 point chacune. J'ai donc dans une cellule les différentes réponses choisies par le candidat séparées par une virgule et un espace (ex : "Réponse 2, Réponse 4").

Comment est-il possible de convertir ces données en points en fonction du barème attribué à chaque réponse ?

Merci d'avance de votre aide.

Ben

Bonjour

Pour moins de 10 réponses, tu peux utiliser une formule simple de ce type (Ex pour 4 réponses)

=NB.SI(B6;"*1*")*0,5+NB.SI(B6;"*2*")*0,6+NB.SI(B6;"*3*")+NB.SI(B6;"*4*")*1,5

Exemple dans le fichier joint

Cordialement

95essai-formules.xlsx (10.92 Ko)

Bonjour,

Merci beaucoup pour ton aide, ça fonctionne parfaitement. J'ai adapté mon fichier en fonction du nombre de réponses et et des barèmes.

Du coup, j'ai une autre question. Je souhaiterai, grâce à un bouton associé à une macro VBA, copier automatiquement des cellules de la dernière ligne non vide du feuillet "Réponses de formulaire" vers la cellule B1 du feuillet "Correction". Ne sachant pas coder en VBA, j'ai utiliser l'enregistreur de macro et j'ai obtenu ceci :

Sub Récupération_des_résultats()

'

' Récupération_des_résultats Macro

'

'

Sheets("Réponses de formulaire").Select

Range("B2:AO2").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("Correction").Select

Range("B1").Select

ActiveSheet.Paste

End Sub

Je souhaiterai la modifier pour qu'il ne me sélectionne plus la range ("B2:AO2") mais mais la même range de cellule de la dernière ligne non vide.

Quelqu'un pourrait-il m(aider s'il vous plait ?

Je me doute que ca ne doit pas être très compliqué mais je ne m'en sors pas.

Bonjour

A tester

Sub Récupération_des_résultats()

  With Sheets("Réponses de formulaire")
    .Range("B" & .Range("B" & Rows.Count).End(xlUp).Row).Resize(1, 40).Copy Sheets("Correction").Range("B1")
  End With
End Sub

Bonjour,

Désolé pour le retard de ma réponse mais ta macro ci-dessus fonctionne parfaitement. Merci beaucoup.

Est-il possible de faire la même chose mais en prenant pour source la dernière ligne d'une feuille d'un autre classeur Excel fermé ?

Bonjour

Avec un classeur fermé c'est possible mais je ne sais pas faire

Sinon il faut ouvrir le fichier, récupérer les données et refermer le fichier

A toi de voir quelle solution tu veux

Fournis les fichiers correspondants

Je souhaite faire un copier/coller de la dernière ligne du feuillet "Réponses de formulaire" du fichier "Questionnaire candidat (réponses).xlsx" vers la cellule B2 du feuillet "Correction" du classeur "Correction".

Quand tu dis qu'il faut ouvrir le fichier, est-ce la macro qui va l'ouvrir ou devrais-je l'ouvrir manuellement au préalable (faisable si nécessaire) ?

D'avance merci.

53correction.xlsm (22.37 Ko)

Quelqu'un a une idée ?

Bonjour

Les 2 fichiers dans le même répertoire

C'est la macro qui ouvre/referme le fichier

La recopie se fait en B1 (pas en B2)

Ca marche très bien, merci beaucoup.

Je passe le sujet en résolu.

Rechercher des sujets similaires à "formules correction automatique questionnaire"