Bonjour,
j'ai commencé à travailler sur vba depuis quelques jours, j'ai voulu effectuer un exercice d'un livre : c'est un quiz avec une question et trois réponses par slide. Si l'utilisateur clique sur un des boutons réponses, la question suivante apparaît, et à la fin sur la dernière slide un bouton résultat affiche le nombre de bonnes réponses.
Voici le code du livre avec les trois fonctions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public NBMauvRep As Integer
Sub BonneRep()
    numdiapo = SlideShowWindows(1).View.Slide.SlideIndex
    'Remise à zéro de la variable NBMauvRep lorsqu'on lance le test plusieurs fois à la suite
    If numdiapo = 1 Then NBMauvRep = 0
    SlideShowWindows(Index:=1).View.GotoSlide Index:=numdiapo + 1
End Sub
 
Sub MauvaiseRep()
    If numdiapo = 1 Then
        NBMauvRep = 1
    Else
        NBMauvRep = NBMauvRep + 1
    End If
    numdiapo = SlideShowWindows(1).View.Slide.SlideIndex
    SlideShowWindows(Index:=1).View.GotoSlide Index:=numdiapo + 1
End Sub
 
Sub Resultat()
    Rep = MsgBox("VOUS AVEZ SELECTIONNE " & NBMauvRep & " MAUVAISE(S)REPONSE(S) SUR 4 QUESTIONS.", vbCritical, "RESULTATS")
End Sub
Il y a une erreur qui s'affiche : "SlideShowWindows(unknown member):Integer out of range. 1 is not in the valid range of 1 to 0".

J'ai donc essayé de le modifier :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Public NBMauvRep As Integer
Public numdiapo As Integer
 
Sub BonneRep()
    numdiapo = ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
 
    'Remise à zéro de la variable NBMauvRep lorsqu'on lance le test plusieurs fois à la suite
    If numdiapo = 1 Then
        NBMauvRep = 0
    End If
    ActiveWindow.View.GotoSlide (numdiapo + 1)
End Sub
 
Sub MauvaiseRep()
    numdiapo = ActiveWindow.View.Slide.SlideIndex
    If numdiapo = 1 Then
        NBMauvRep = 1
    Else
        NBMauvRep = NBMauvRep + 1
    End If
    ActiveWindow.View.GotoSlide (numdiapo + 1)
End Sub
 
Sub Resultat()
    Rep = MsgBox("VOUS AVEZ SELECTIONNE " & NBMauvRep & " MAUVAISE(S)REPONSE(S) SUR 4 QUESTIONS.", vbCritical, "RESULTATS")
End Sub
Il n'y a plus d'erreur, mais là en mode diaporama (et en ayant affecter les macros aux boutons), il ne se passe rien quand je clique sur un des boutons de la première slide... Au début en ayant fait un tour sur plusieurs forums, j'ai vu que mon problème venait de mes "Select", mais là je ne vois pas du tout :s

Si quelqu'un pourrait m'éclairer un petit peu ^^ ?

Merci d'avance =)