Quizz Powerpoint VBA _ Sauter 1 slide

Bonjour à tous,

J'ai crée un quizz sur ppt sur lequel j'ai inséré des macros. Le principe: 1 diapo / question, contenant chacune 3 options de réponse.

- Si on clique sur la bonne réponse, 1 macro renvoie vers le slide de bonne réponse et enregistre 1 point. Jusque là pas de pb

Sub Correct()

MsgBox " Bonne réponse " + UserName, vbApplicationModal, " Sample Quiz"

numberCorrect = numberCorrect + 1

ActivePresentation.SlideShowWindow.View.Next

End Sub

-Si on clique sur l'une des 2 mauvaises rep, 1 macro renvoie vers la diapos mauvaise rep. Là je rencontre un pb: les slides de mauvaise rep sont sytématiquement placées 1 slide après celle de la question. Et je ne sais pas comment rédiger en vba le fait de sauter 1 slide.

Sub Faux1()

MsgBox " Mauvaise réponse " + UserName, vbApplicationModal, " Sample Quiz"

numberFaux = numberFaux + 1

que dois-je mettre à la place de "ActivePresentation.SlideShowWindow.View.Next"?

End Sub

Merci bcp par avance!

Flora

Bonjour Flora,

Une suggestion à tester ...

Que se passe-t-il si tu répètes deux fois ton instruction ?

Bonjour James,

J'ai testé ta solution à savoir:

Sub Faux()

MsgBox " Mauvaise réponse " + UserName, vbApplicationModal, " Sample Quiz"

numberFaux = numberFaux + 1

ActivePresentation.SlideShowWindow.View.Next

ActivePresentation.SlideShowWindow.View.Next

End Sub

Résultat: je vais sur la diapo suivante (4) et non sur celle souhaitée (5)

J'ai aussi testé celle ci-dessous qui ne marche pas du tout (rien ne se passe)

Sub Faux()

MsgBox " Mauvaise réponse " + UserName, vbApplicationModal, " Sample Quiz"

numberFaux = numberFaux + 1

ActivePresentation.SlideShowWindow.View.Next.Next

End Sub

Merci pour cette suggestion en tout cas

Flora

Bonjour,

je pense qu'il te faudra gérer toi-même un pointeur de "slide" et utiliser la méthode .gotoslide x où x est le numéro du slide à afficher

ActivePresentation.SlideShowWindow.View.gotoslide x

Bonjour h20s4,

J'ai tenté cette méthode mais elle me plante mon comptage de points. Dans cette situation, il faut que je fasse plusieurs Sub Faux() précisant chacune le numéro de slide. Or ce dont j'ai besoin c'est une seule et unique Sub Faux() générique pour pouvoir compter le résultat final.

PI ma macro pour les résultats:

Sub Resultats()

MsgBox (" Vous avez " & numberCorrect & " bonnes réponses, " & numberFaux & " mauvaies réponses, " & UserName), vbApplicationModal, " Sample Quiz"

End Sub

Bonjour Flora,

Une autre suggestion ... à tester ...

With ActivePresentation.SlideShowWindow
     .View.GotoSlide (ActivePresentation.SlideShowWindow.View.Slide.SlideIndex + 2)
End With

Salut James,

Ca a marché!!! Merci infiniemment

Flora

Flora,

Super content que cela fonctionne ...!!!

Merci pour tes remerciements ...

James,

J'ai un petit bug maintenant, ma macro "résultats" ne me donne que le nombre de bonnes réponse et jamais celui des mauvaises. Y a-t-il une erreur d'écriture?

Sub RenseignerNom()

UserName = InputBox(Prompt:="Taper votre nom et prénom suivi de votre service")

MsgBox " Bienvenue au Quizz du Service Crédit " + UserName, vbApplicationModal, " Sample Quiz"

ActivePresentation.SlideShowWindow.View.Next

End Sub

Sub Commencer()

numberCorrect = 0

numberFaux = 0

RenseignerNom

ActivePresentation.SlideShowWindow.View.Next

End Sub

Sub Correct()

MsgBox " Bonne réponse " + UserName, vbApplicationModal, " Quizz Crédit"

numberCorrect = numberCorrect + 1

ActivePresentation.SlideShowWindow.View.Next

End Sub

Sub Faux()

MsgBox " Mauvaise réponse " + UserName, vbApplicationModal, " Quizz Crédit"

numberFaux = numberFaux + 1

With ActivePresentation.SlideShowWindow

.View.GotoSlide (ActivePresentation.SlideShowWindow.View.Slide.SlideIndex + 2)

End With

End Sub

Sub Resultats()

MsgBox (" Vous avez " & numberCorrect & " bonnes réponses, " & numberFaux & " mauvaises réponses, " & UserName), vbApplicationModal, " Quizz Service Crédit"

End Sub

Merci bcp encore pouur ton aide

Flora

Flora,

La précaution à prendre pour tes deux variables qui servent de compteurs ... est de les déclarer en Public ...

Au tout début de ton module ...

Public numberCorrect As Integer
Public numberFaux As Integer 

James,

Merci pour ta réactivité! Lorsque que j'intègre ton code dans mes formules vba, plus aucune macro ne fonctionne:

Public numberCorrect As Integer

Public numberFaux As Integer

Dim UserName As String

Dim numberCorrect As Integer

Dim numberWrong As Integer

Sub RenseignerNom()

UserName = InputBox(Prompt:="Taper votre nom et prénom suivi de votre service")

MsgBox " Bienvenue au Quizz du Service Crédit " + UserName, vbApplicationModal, " Sample Quiz"

ActivePresentation.SlideShowWindow.View.Next

End Sub

Sub Correct()

MsgBox " Bonne réponse " + UserName, vbApplicationModal, " Quizz Service Crédit"

numberCorrect = numberCorrect + 1

ActivePresentation.SlideShowWindow.View.Next

End Sub

Sub Faux()

MsgBox " Mauvaise réponse " + UserName, vbApplicationModal, " Quizz Service Crédit"

numberFaux = numberFaux + 1

With ActivePresentation.SlideShowWindow

.View.GotoSlide (ActivePresentation.SlideShowWindow.View.Slide.SlideIndex + 2)

End With

End Sub

Sub Commencer()

numberCorrect = 0

numberFaux = 0

RenseignerNom

ActivePresentation.SlideShowWindow.View.Next

End Sub

Sub Resultats()

MsgBox (" Vous avez " & numberCorrect & " bonnes réponses, " & numberFaux & " mauvaises réponses, " & UserName), vbApplicationModal, " Quizz Service Crédit"

End Sub

Sub ShowAnswers()

Dim AnsList As String

AnsList = "The answers are as follows:" & vbCrLf

For X = 0 To NOOFQS - 1

AnsList = AnsList & Qs(X) & vbTab & " Answer:" & Choices(X, Ans(X)) & vbCrLf

Next X

MsgBox AnsList, vbOKOnly, "Correct answers"

End Sub

Ai-je bien intégré ton code?

Flora

Flora,

Si j'ai bien compté ... tu as 3 variables qui dès que tu définis globalement ... doivent être

Public

...

Public numberCorrect As Integer
Public numberFaux As Integer
Public UserName As String

C'est bon ca marche! Encore merciiiiiii James

Flora

floflo006 a écrit :

C'est bon ca marche! Encore merciiiiiii James

Flora

Bonjour Flora,

Ravi pour toi que tout fonctionne ...

Merci pour tes trés gentils remerciiiiiiiiiiiii ements ....

Hello James,

Je rencontre de nouvelles difficultés... Je souhaiterais que les résultats de chaque participant à mon quizz soient extraits dans un tableau excel pour ensuite pouvoir établir un classement. J'ai tenté la formule ci-dessous ms elle ne fonctionne pas, mon tableau excel ne s'ouvre même pas..

Sub import_values()

' Ouverture d'Excel

Dim xlApp As Excel.Application

Dim xlBook As Excel.Workbook

Set xlApp = CreateObject("Excel.Application")

' Ouverture du fichier Excel devant recevoir les informations

' Nom_Fichier est le nom complet de fichier avec son chemin C.....

Set xlBook = xlApp.Workbooks.Open("D:\Utilisateurs\flora\Documents\QUIZZ\Résultats Quizz.xls")

xlBook.Sheets(1).Cells(3, 1) = UserName

xlBook.Sheets(1).Cells(3, 2) = numberCorrect

xlBook.Sheets(1).Cells(3, 3) = numberFaux

xlBook.Save

xlBook.Close (SaveChanges = True)

' fermeture du fichier et du processus excel

Set xlBook = Nothing

xlApp.Application.Visible = True

xlApp.Application.Quit

xlApp.Quit

Set xlApp = Nothing

End Sub

Y-a-t-il des erreurs?

Merci bcp d'avance

Flora

Bonjour Flora,

Le moins que l'on puisse dire ... c'est que tu es Ultra dynamique ...!!!

Pour bien comprendre, tu cherches à ...

1. Exporter depuis PowerPoint vers Excel

ou

2. Importer depuis Excel une slide de Powerpoint

Salut James,

Merci pour ta réponse si rapide! Je cherche à exporter les résultats de chaque participant au quizz depuis PowerPoint vers Excel.

Flora

Re,

Donc tu exportes depuis Powerpoint avec une macro qui ouvre Excel et le fichier pour stocker dans les cellules A3,B3 et C3 ...

As-tu un seul fichier Excel ou un fichier Excel par participant ...???

Tes trois variables UserName, numberCorrect, Numberfaux sont-elles déclarées en Public ...???

A priori, ta macro Powerpoint va être lancé à chaque fois pour chaque participant ... est-ce ton idée ...???

Désolé pour toutes ces questions .... mais sans voir les fichiers ... je suis contraint de comprendre ton environnement ...

James,

Pas de pb pr les questions voici mes réponses:

  • As-tu un seul fichier Excel ou un fichier Excel par participant : j'ai 1 seul fichier, j'aimerais que tous mes résultats soient exportés vers ce même fichier
  • Tes trois variables UserName, numberCorrect, Numberfaux sont-elles déclarées en Public: oui, elles sont déclarées comme suit
Public numberCorrect As Integer

Public numberFaux As Integer

Public username As String

-A priori, ta macro Powerpoint va être lancé à chaque fois pour chaque participant ... est-ce ton idée: dans l'idéal je souhaiterais que les résultats soient tous stockés sur 1 fichier peu importe le format (excel ou word) tant que je peux, à l'issu du quizz, établir un classement.

Flora

Flora,

Si tu veux utiliser le même fichier pour tous les participants ...et que j'ai bien compris les choses ... tu ne peux pas utiliser toujours les trois mêmes cellules ... car chaque résultat sauvé va écraser le précédent ... non ... ???

En attendant, il faudrait que ta macro fonctionne au moins pour un utilisateur ...

Sub Export_values()
Dim xlApp As Object
Dim xlWorkBook As Object
Dim xlBook

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True

' Ouverture du fichier Excel devant recevoir les informations
' Nom_Fichier est le nom complet de fichier avec son chemin C.....
Set xlBook = xlApp.Workbooks.Open("D:\Utilisateurs\flora\Documents\QUIZZ\Résultats Quizz.xls")

xlBook.Sheets(1).Cells(3, 1) = Username
xlBook.Sheets(1).Cells(3, 2) = numberCorrect
xlBook.Sheets(1).Cells(3, 3) = numberFaux

xlBook.Save
xlBook.Close

' fermeture du fichier et du processus excel
Set xlBook = Nothing
xlApp.Application.Quit
xlApp.Quit
Set xlApp = Nothing

End Sub
Rechercher des sujets similaires à "quizz powerpoint vba sauter slide"