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 :
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".
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
J'ai donc essayé de le modifier :
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
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
Si quelqu'un pourrait m'éclairer un petit peu ^^ ?
Merci d'avance =)
Partager