Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Powerpoint > VBA PowerPoint
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2006, 11h08   #1
Invité régulier
 
Inscription : avril 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 54
Points : 9
Points : 9
Par défaut [VBA-PP] Intervention de l'utilisateur

Bonsoir,

je dois créer un diaporama powerpoint pour une expérience psychologique. A chaque diapositive, la personne qui passe le test doit répondre par "oui" ou "non" a une question, et ensuite passez à la diapositive suivante. Je voulais savoir si c'était possible de créer une macro visual basic ou autre chose qui me permettrai de créer sur mes diapositives deux bouton, un "oui" et un "non", et que après avoir cliquer dessus, on passe à la diapositive suivante, sans savoir si sa réponse st juste ou fausse. Ensuite, il faudrait qu'à la fin du diaporama, je puisse récuperér les réponse de celui qui a passé le test sans qu'il les voient, du genre une dernière diapositives qui me dirait : "24 réponse juste sur 40"...

en fait, je pensais utiliser un bouton d'action tout simple qui renverrait à une application visual basic qui me compterai mes bonne ou mauvaise réponse selon ce que j'aurai défini comme bonne ou mauvaise réponse.

Qulequ'un peut m'aider ??

Merci bp fois d'avance
alpking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 11h21   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu as tout dans ppt. Chaque objet permet d'indiquer une action.
Tu sélectionnes l'objet, clic droit -> Paramètre des actions -> Créer un lien hypertexte vers -> Diapo suivante
Là tu visites si tu veux faire autre chose.
Pour les boutons, tu les crées sur la première feuille, tu fais ce que je viens d'indiquer pour tes deux boutons
Pour les dupliquer avec les actions que tu as définies pour eux, suffit de les copier et de les coller sur la nouvelle diapo. Ils conservent les actions à effectuer
Vas pas te compliquer la vie à faire une macro pour ça.

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 11h28   #3
Invité régulier
 
Inscription : avril 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 54
Points : 9
Points : 9
ok merci, c'est vrai que c'est plus simple, mais en fait il me faut absolument une dernière diapositive ou n'importe quel autre fichier qui me dise à la fin le nb de bonnes réponses...

des idées ??
alpking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2006, 20h44   #4
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonsoir

Si tu as par exemple plusieurs Checkbox dans les différents Slides de ta présentation, tu pourrais ajouter un bouton dans le dernier Slide et utiliser cette macro .
Les résultats sont ensuite sauvegardés dans un fichier .txt

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
Private Sub CommandButton1_Click()
Dim i As Byte, j As Integer
Dim Obj As Shape
Dim Resultat As String
Dim Cible As Integer
 
For i = 1 To ActivePresentation.Slides.Count
 
    For Each Obj In ActivePresentation.Slides(i).Shapes
 
        If Obj.Type = msoOLEControlObject Then
 
            If Obj.OLEFormat.ProgID = "Forms.CheckBox.1" Then
                Resultat = Resultat & ActivePresentation.Slides(i).Name _
                & " / " & Obj.Name & " / " & Obj.OLEFormat.Object.Value & vbCrLf
            End If
 
        End If
 
    Next Obj
 
Next i
 
MsgBox Resultat
 
'Les nouvelles données viennent s'inscrire à la suite des lignes existantes .
'Si le fichier .txt n'existe pas , il sera créé automatiquement .
Cible = FreeFile
Open "C:\enregistrementResultats.txt" For Append As #Cible
Print #Cible, Now
Print #Cible, Resultat
Print #Cible, "--------"
Close #Cible
 
'réinitialisation de tous les CheckBox à False
For i = 1 To ActivePresentation.Slides.Count
    For Each Obj In ActivePresentation.Slides(i).Shapes
        If Obj.Type = msoOLEControlObject Then
            If Obj.OLEFormat.ProgID = "Forms.CheckBox.1" Then
                Obj.OLEFormat.Object.Value = False
            End If
        End If
    Next Obj
Next i
 
End Sub
Reste à voir ou tu stockes les "bons résultats" pour ensuite verifier les reponses

bonne soiree
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2006, 01h27   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Hello,
Silky te donne une méthode orthodoxe pour réaliser ce que tu veux...
De mon côté j'ai un "bricolage" que j'ai déjà utilisé... ne connaissant pas encore SilkyRoad à l'époque...
Je place deux zones de texte dans la dernière diapo, une pour oui, une pour non et je les incrémente par une unique macro que lance chacun des x boutons "Oui" ou "Non" de ton diaporama. L'affichage ne pose alors aucun pb...
Malheureusement on ne peut pas en même tps créer un lien sur la diapo suivante et lancer une macro silmutanément par le "Paramètre des actions"
Il faudrait donc ajouter un bouton qui permette ce passage.
J'ai parlé de "bricolage"...
Je dois avoir ça au boulot. Si ça t'intéresse, je pourrai voir si je retrouve le code demain.

Tu dis

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h42.


 
 
 
 
Partenaires

Hébergement Web