QCM sous Power point

QCM sous Power point - VB/VBA/VBS - Programmation

Marsh Posté le 11-04-2012 à 14:21:38    

Bonjour à tous,  
 
Je souhaite créer un QCM pour évaluer les connaissances de collaborateurs.  
Je pensais avoir comme support powerpoint.  
 
Mon projet :  
- une série de questions à choix multiples
- je souhaite envoyer ce QCM à tous mes collégues par mail  
- Le but étant de générer un fichier texte ou csv des résultats regroupant toutes les réponses et que celui-ci me soit envoyer par mail automatiquement si c'est faisable. Ce qui me permettrait après de faire une analyse statistique des résultats.  
 
Je suis arrivé au code suivant.  
J'obtiens a peu prés ce que je souhaite :
- l'ouverture du questionnaire  
1) question sur le prénom et nom avant de poursuivre  
2) défilement du QCM sans faire mentions des réponses justes ou fausses  
3) à la fin création sur le bureau (je ne sais pas pourquoi ??????) d'un fichier prenomnom.txt et affichage des résultats en nb question juste/le total et en % de réussite.  
 
Il me manque juste quelques point que j'ai pas réussit à coder  
1) Je souhaiterais que le diaporama (j'utiliserais un executable) se ferme automatiquement à la fin sans intervention humaine.  
 
2) Jevoudrais que le fichier créer me soit automatiquement par mail.  
 
3) Et dans l'idéal pouvoir aussi comptabilisé toutes les réponses pas uniquement juste ou faux.  
 
[cpp]
'Déclaration des variables  
Dim Total, Question As Integer  
Dim Reponse, Nom As String  
Dim Points(100) As Integer 'Déclaration du tableau qui contiendra les réponses  
'Procédure pour le clic sur le bouton ICI dans la première dia  
Sub Init()  
'Une boîte de dialogue pour demandé le nom  
Nom = ""  
Do While Nom = ""  
Nom = InputBox("Quel est votre Prénom et Nom ?", "Bonjour" )  
Loop  
Total = 0 'Le total des points est initialisé  
Question = 2 'La première question porte le numéro 1  
Application.SlideShowWindows(1).View.GotoSlide 3 'Activation de la dia numéro  
End Sub  
'Procédure pour le clic sur le bouton de bonne réponse  
Sub Bon()  
Total = Total + 1 'Le total des points est augmenté de 1  
Points(Question) = 1 'Le tableau des réponses est complété  
Reponse = "bonne." 'Cette variable sera utilisée dans le message affiché par DiaSuivante()  
Module1.DiaSuivante 'Appel de la procédure DiaSuivante  
End Sub  
'Procédure pour le clic sur le bouton de mauvaise réponse  
Sub Faux()  
Points(Question) = 0 'Le tableau des réponses est complété  
Reponse = "fausse." 'Cette variable sera utilisée dans le message affiché par DiaSuivante()  
Module1.DiaSuivante 'Appel de la procédure DiaSuivante  
End Sub  
'Procédure pour le passage à la diapositive suivante  
Sub DiaSuivante()  
Question = Question + 1 'Question suivante  
'Activation de la dia suivante  
Application.SlideShowWindows(1).View.GotoSlide Question + 1  
End Sub  
'Procédure pour le clic sur le point d'interrogation de la dernière dia  
Sub Fin()  
Dim xcl As Object 'Déclaration de la variable qui fera référence à Excel  
Dim ExcelNonOuvert As Boolean  
'La boîte de dialogue  
x = MsgBox("Vous avez répondu correctement à " & Total & " questions sur " & Question - 2 & "." _  
& Chr(13) & "Vous avez donc " & Int(Total / (Question - 2) * 100) & "% de réussite." _  
& Chr(13) & "Cliquez sur le bouton OK", , "Fin du questionnaire" )  
Fichier = Nom & ".txt"  
'sauvegarde des résultats  
'dans un fichier texte  
'portant comme nom celui de la personne qui a répondu au questionnaire  
Open Fichier For Output Shared As #1  
Write #1, Nom  
For i = 1 To Question - 2  
Write #1, Points(i)  
Next i  
Close #1  
 
 
Merci pour votre aide.  
 

Reply

Marsh Posté le 11-04-2012 à 14:21:38   

Reply

Marsh Posté le 16-04-2012 à 21:52:52    

Bonjour,  
 
Je reviens vers vous.  
Car je suis arrivé à modifier mon code, pour me rapprocher de mon cahier des charges.  
Tout n'est pas encore gagné.  
 
Il me manque ne fait 1 chose :  
Le fichier créer et envoyé par mail ne donne que réponse bonne ou fausse.  
Et j'aimerais obtenir le même type de fichier mais avec la réponse exacte histoire de pouvoir analyser les réponses.  
Pour cette partie je n'ai aucune idée.  
 
Merci pour votre aide.  
 
Ci-dessous mon code  
[code]  
'Déclaration des variables  
Dim Total, Question As Integer  
Dim Reponse, Nom As String  
Dim Points(100) As Integer 'Déclaration du tableau qui contiendra les réponses  
'Procédure pour le clic sur le bouton ICI dans la première dia  
Sub Init()  
'Une boîte de dialogue pour demandé le nom  
Nom = ""  
Do While Nom = ""  
Nom = InputBox("Quel est votre Prénom et Nom ?", "Bonjour" )  
Loop  
Total = 0 'Le total des points est initialisé  
Question = 2 'La première question porte le numéro 1  
Application.SlideShowWindows(1).View.GotoSlide 3 'Activation de la dia numéro  
End Sub  
'Procédure pour le clic sur le bouton de bonne réponse  
Sub Bon()  
Total = Total + 1 'Le total des points est augmenté de 1  
Points(Question) = 1 'Le tableau des réponses est complété  
Reponse = "bonne." 'Cette variable sera utilisée dans le message affiché par DiaSuivante()  
Module1.DiaSuivante 'Appel de la procédure DiaSuivante  
End Sub  
'Procédure pour le clic sur le bouton de mauvaise réponse  
Sub Faux()  
Points(Question) = 0 'Le tableau des réponses est complété  
Reponse = "fausse." 'Cette variable sera utilisée dans le message affiché par DiaSuivante()  
Module1.DiaSuivante 'Appel de la procédure DiaSuivante  
End Sub  
'Procédure pour le passage à la diapositive suivante  
Sub DiaSuivante()  
Question = Question + 1 'Question suivante  
'Activation de la dia suivante  
Application.SlideShowWindows(1).View.GotoSlide Question + 1  
End Sub  
'Procédure pour le clic sur le point d'interrogation de la dernière dia  
Sub Fin()  
'La boîte de dialogue  
x = MsgBox("Vous avez répondu correctement à " & Total & " questions sur " & Question - 2 & "." _  
& Chr(13) & "Vous avez donc " & Int(Total / (Question - 2) * 100) & "% de réussite." _  
& Chr(13) & "Cliquez sur le bouton OK", , "Fin du questionnaire" )  
Fichier = "C:\test.txt"  
'sauvegarde des résultats dans un fichier texte portant comme nom celui de la personne qui a répondu au questionnaire  
Open Fichier For Output Shared As #1  
Write #1, Nom  
For i = 1 To Question - 2  
Write #1, Points(i)  
Next i  
Close #1  
'Envoie mail des résultats  
Dim ol As Object  
Set ol = CreateObject("Outlook.Application" )  
Dim olmail As Object  
Set olmail = ol.CreateItem(MailItem)  
With olmail  
.To = "bruno.lectard@cea.fr"  
.Subject = "Résultat QCM"  
.Attachments.Add "C:\test.txt"  
.Send  
End With  
Set ol = Nothing  
Set olmail = Nothing  
'suppression fichier  
Kill "C:\test.txt"  
Module1.DiaSuivante  
End Sub  
Sub Fermeture()  
ActivePresentation.Close  
End Sub  
[code]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed