QCM avec macro
Fermé
ELADAOUI
Messages postés
13
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
3 juillet 2014
-
1 juil. 2014 à 10:58
ELADAOUI Messages postés 13 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 3 juillet 2014 - 3 juil. 2014 à 13:27
ELADAOUI Messages postés 13 Date d'inscription jeudi 5 juin 2014 Statut Membre Dernière intervention 3 juillet 2014 - 3 juil. 2014 à 13:27
A voir également:
- QCM avec macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro logiciel - Télécharger - Organisation
- Tri automatique excel sans macro ✓ - Forum Excel
2 réponses
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
54
1 juil. 2014 à 14:56
1 juil. 2014 à 14:56
Bonjour,
C'est très simple.
Il suffis d'utiliser un userform par question.
Le bouton passe d'un userform à un autre.
Il faut aussi crée un userform par "Résultat" (fin du QCM).
Et l'avant dernier userform à un sub qui en fonction du total de points choisi différents userform.
Si tu est pas très doué en macro je peux le faire pour toi.
C'est très simple.
Il suffis d'utiliser un userform par question.
Le bouton passe d'un userform à un autre.
Il faut aussi crée un userform par "Résultat" (fin du QCM).
Et l'avant dernier userform à un sub qui en fonction du total de points choisi différents userform.
Si tu est pas très doué en macro je peux le faire pour toi.
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 737
1 juil. 2014 à 16:42
1 juil. 2014 à 16:42
Bonjour
Un petit exemple de macro
Les questions et réponses et autres éléments nécessaires sont dans une feuille masquée Questions (Clic droit sur l'onglet de Feuil 2 et Afficher pour la démasquer)
On peut rajouter autant de questions que l'on veut la macro s'adapte
https://www.cjoint.com/?0GbqQBLJHzD
Cdlmnt
Un petit exemple de macro
Les questions et réponses et autres éléments nécessaires sont dans une feuille masquée Questions (Clic droit sur l'onglet de Feuil 2 et Afficher pour la démasquer)
On peut rajouter autant de questions que l'on veut la macro s'adapte
https://www.cjoint.com/?0GbqQBLJHzD
Cdlmnt
ELADAOUI
Messages postés
13
Date d'inscription
jeudi 5 juin 2014
Statut
Membre
Dernière intervention
3 juillet 2014
Modifié par ELADAOUI le 2/07/2014 à 09:47
Modifié par ELADAOUI le 2/07/2014 à 09:47
Bonjour, ton exemple est franchement excellent, je te remercie.
Par contre peux-tu m'expliquer étape par étape la création de ta macro ?
Et comment modifier l'image ?
Merci d'avance
Par contre peux-tu m'expliquer étape par étape la création de ta macro ?
Et comment modifier l'image ?
Merci d'avance
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 737
2 juil. 2014 à 14:41
2 juil. 2014 à 14:41
1) macro principale lancée par le bouton lancer le questionnaire :
Private Sub CommandButton1_Click()
'rend le bouton pour lancer le jeu invisible
CommandButton1.Visible = False
' RAZ du total
total = 0
'Boucle de 1 à la valeur en A1 (le plus fort n°)
For n = 1 To Sheets("questions").Range("A1")
'affecte X à la variable R
'la variable R est modifié lorsqu'on clic sur un bouton d'option dans l'Userform QCM (voir macros jointes à QCM)
'Elle prend alors les valeurs soit D, F ou H soit les colonnes de Questions où il y a les points
r = "X"
With QCM
'Remise à faux (non coché des 3 boutons de l'UF)
.OptionButton1.Value = False
.OptionButton2.Value = False
.OptionButton3.Value = False
'Modification du n° question dans l'UF
.Label1.Caption = "Question " & n
'Modification texte question dans UF (lecture de la cellule Bn dans Questions)
.question = Sheets("Questions").Range("B" & n + 1)
'modification des 3 propositions de réponses (lecture dans Questions)
.p1 = Sheets("Questions").Range("C" & n + 1)
.p2 = Sheets("Questions").Range("E" & n + 1)
.p3 = Sheets("Questions").Range("G" & n + 1)
'affichage de l'UF QCM (et rien ne se passe tant que pas Valider la réponse ; voir macros liées à QCM)
.Show
End With
' une fois réponse validé passage à question suivante
Next
'Une fois toutes les questions posées:
'lecture du max de points possible calculé en M2 de Questions
maxi = Sheets("questions").Range("M2")
'calcul du % de bonnes réponses
pourcent = total / maxi
'lecture du % tranche haute (=>1er commentaire)en J2et du % tranche basse en J4
pmax = Sheets("Questions").Range("J2")
pmin = Sheets("Questions").Range("J4")
'lecture des 3 commentaires possibles en K2, K3 et K4
c1 = Sheets("Questions").Range("k2")
c2 = Sheets("Questions").Range("k3")
c3 = Sheets("Questions").Range("k4")
'choix du commentaire et du n° de la forme à afficher en fonction du %
If pourcent >= pmax Then commentaire = c1: k = 1 Else If pourcent <= 0.4 Then commentaire = c3: k = 3 Else commentaire = c2: k = 2
' Masque l'UF QCM
QCM.Hide
' Rend visible la forme (Sourire 1, 2 ou 3)
Shapes("Sourire " & k).Visible = True
With result
' affichage des poinst dans l'UF result
.points = total & "/" & maxi
' affichage du commentaire dans l'UF result
.com = commentaire
'affichage de l'UF result
.Show
End With
End Sub
2) les variables utilisées dans plusieurs macro ont été déclarées dans le Module 1
Public n As Integer
Public r As String
Public total As Integer
Public k As Integer
3) macro associée à la feuille2 pour les affichages
Private Sub Worksheet_Activate()
' a l'activation de la feuille :
' rend bouton pour lancer le jeu visible
CommandButton1.Visible = True
' rend les 3 formes invisibles
Shapes("Sourire 1").Visible = False
Shapes("Sourire 2").Visible = False
Shapes("Sourire 3").Visible = False
End Sub
4) macros associées à luserform QCM :
Private Sub CommandButton1_Click()
' au clic sur Valider recupere les points en fonction de la réponse dans la bonne colonne (variable r) et dans la ligne correspondant au n° de question +1 (n+1)
pts = Sheets("Questions").Range(r & n + 1)
' ajout des points au total
total = total + pts
QCM.Hide
End Sub
' au clic sur un des boutons d'option, attribue une lettre à la variable r (lettre de la colonne : voir macro principale)
Private Sub OptionButton1_Click()
r = "D"
End Sub
Private Sub OptionButton2_Click()
r = "F"
End Sub
Private Sub OptionButton3_Click()
r = "H"
End Sub
Enfin les 3 images dans la feuille sont simplement 3 formes placées dans la feuille et nommées Sourire 1, Sourire 2 et Sourire 3 et qui sont masquées quand on sélectionne la feuille (voir macro du 3)) En fonction des résultats la macro principale rend visible l'une des 3 formes
Tu peux remplacer ces formes par des images, (Excel va les nommer Image 1, Image 2 etc dans la zone Nom à gauche de la barre de formule) il te suffira dans les macros de remplacer Sourire par Image
Cdlmnt
Private Sub CommandButton1_Click()
'rend le bouton pour lancer le jeu invisible
CommandButton1.Visible = False
' RAZ du total
total = 0
'Boucle de 1 à la valeur en A1 (le plus fort n°)
For n = 1 To Sheets("questions").Range("A1")
'affecte X à la variable R
'la variable R est modifié lorsqu'on clic sur un bouton d'option dans l'Userform QCM (voir macros jointes à QCM)
'Elle prend alors les valeurs soit D, F ou H soit les colonnes de Questions où il y a les points
r = "X"
With QCM
'Remise à faux (non coché des 3 boutons de l'UF)
.OptionButton1.Value = False
.OptionButton2.Value = False
.OptionButton3.Value = False
'Modification du n° question dans l'UF
.Label1.Caption = "Question " & n
'Modification texte question dans UF (lecture de la cellule Bn dans Questions)
.question = Sheets("Questions").Range("B" & n + 1)
'modification des 3 propositions de réponses (lecture dans Questions)
.p1 = Sheets("Questions").Range("C" & n + 1)
.p2 = Sheets("Questions").Range("E" & n + 1)
.p3 = Sheets("Questions").Range("G" & n + 1)
'affichage de l'UF QCM (et rien ne se passe tant que pas Valider la réponse ; voir macros liées à QCM)
.Show
End With
' une fois réponse validé passage à question suivante
Next
'Une fois toutes les questions posées:
'lecture du max de points possible calculé en M2 de Questions
maxi = Sheets("questions").Range("M2")
'calcul du % de bonnes réponses
pourcent = total / maxi
'lecture du % tranche haute (=>1er commentaire)en J2et du % tranche basse en J4
pmax = Sheets("Questions").Range("J2")
pmin = Sheets("Questions").Range("J4")
'lecture des 3 commentaires possibles en K2, K3 et K4
c1 = Sheets("Questions").Range("k2")
c2 = Sheets("Questions").Range("k3")
c3 = Sheets("Questions").Range("k4")
'choix du commentaire et du n° de la forme à afficher en fonction du %
If pourcent >= pmax Then commentaire = c1: k = 1 Else If pourcent <= 0.4 Then commentaire = c3: k = 3 Else commentaire = c2: k = 2
' Masque l'UF QCM
QCM.Hide
' Rend visible la forme (Sourire 1, 2 ou 3)
Shapes("Sourire " & k).Visible = True
With result
' affichage des poinst dans l'UF result
.points = total & "/" & maxi
' affichage du commentaire dans l'UF result
.com = commentaire
'affichage de l'UF result
.Show
End With
End Sub
2) les variables utilisées dans plusieurs macro ont été déclarées dans le Module 1
Public n As Integer
Public r As String
Public total As Integer
Public k As Integer
3) macro associée à la feuille2 pour les affichages
Private Sub Worksheet_Activate()
' a l'activation de la feuille :
' rend bouton pour lancer le jeu visible
CommandButton1.Visible = True
' rend les 3 formes invisibles
Shapes("Sourire 1").Visible = False
Shapes("Sourire 2").Visible = False
Shapes("Sourire 3").Visible = False
End Sub
4) macros associées à luserform QCM :
Private Sub CommandButton1_Click()
' au clic sur Valider recupere les points en fonction de la réponse dans la bonne colonne (variable r) et dans la ligne correspondant au n° de question +1 (n+1)
pts = Sheets("Questions").Range(r & n + 1)
' ajout des points au total
total = total + pts
QCM.Hide
End Sub
' au clic sur un des boutons d'option, attribue une lettre à la variable r (lettre de la colonne : voir macro principale)
Private Sub OptionButton1_Click()
r = "D"
End Sub
Private Sub OptionButton2_Click()
r = "F"
End Sub
Private Sub OptionButton3_Click()
r = "H"
End Sub
Enfin les 3 images dans la feuille sont simplement 3 formes placées dans la feuille et nommées Sourire 1, Sourire 2 et Sourire 3 et qui sont masquées quand on sélectionne la feuille (voir macro du 3)) En fonction des résultats la macro principale rend visible l'une des 3 formes
Tu peux remplacer ces formes par des images, (Excel va les nommer Image 1, Image 2 etc dans la zone Nom à gauche de la barre de formule) il te suffira dans les macros de remplacer Sourire par Image
Cdlmnt
2 juil. 2014 à 09:34
Merci beaucoup pour ta réponse.
Modifié par skk201 le 2/07/2014 à 12:36
Ensuite tu devras utiliser des userform et ses différents objets tu peux trouver de l'aide ici :
https://silkyroad.developpez.com/VBA/UserForm/ et https://silkyroad.developpez.com/VBA/ControlesUserForm/
Par exemple si tu as deux formulaire : "Question1" et "Question2" et que tu veux passez du 1er au 2e il te faut ce genre de code dans un Bouton :
La question peux être répondu par oui ou non avec une case à cocher
La encore c'est incomplet car si la personne répond oui et non alors la réponse sera oui.
Mais si vous voulez je veux volontier vous coacher pour vos débuts, si vous êtes motiver.
2 juil. 2014 à 13:07
2 juil. 2014 à 17:36
Il y a plien de gens pour vous aider ou vous donner des conseils.
3 juil. 2014 à 11:10
Par contre, je bloque sur un chapitre du tutoriel que vous m'avez envoyé, concernant les variables implicites et explicites et leur syntaxe. Pouvez-vous me l'expliquer ?
Merci d'avance.