Aide programmation vba

Fermé
VBA (Vraiment Besoin d'Aide ^^) - 24 mai 2013 à 15:44
 VBA (Vraiment Besoin d'Aide^^) - 24 mai 2013 à 21:57
Bonjour,
J'ai un petit souci. Je galère à faire un projet qui serait de faire un questionnaire sur vba. J'ai déjà commencé mais malheureusement mais macros ne fonctionne pas :(

Public Sub quizz()
Dim numeroLigne As Integer
Dim actionRejouer As Integer
Dim reponse As String
Dim COLONNE_INDICATEUR_FAIT As Integer
Dim COLONNE_QUESTION As Integer
Dim COLONNE_REPONSE As Integer

' Détection de la dernière ligne utilisée pour une question
ligneMax = Cells(1, COLONNE_QUESTION).End(xlDown).Row
' Que fait la ligne suivante ?
Range(Cells(1, COLONNE_INDICATEUR_FAIT), Cells(ligneMax, COLONNE_INDICATEUR_FAIT)).Clear
' Initialisation des tirages.
Randomize
' Algorithme
actionRejouer = vbYes
numeroLigne = trouverNumeroProchaineQuestion()
While numeroLigne <> -1 And actionRejouer = vbYes
reponse = poserQuestion(numeroLigne)
If estBonneReponse(numeroLigne, reponse) Then
compterBonneReponse (numeroLigne)
Else
MsgBox ("Dommage ! " & vbCr & "La bonne réponse était : " & recupererReponse(numeroLigne))

End If
actionRejouer = MsgBox("Voulez-vous rejouer ?", vbYesNo)
numeroLigne = trouverNumeroProchaineQuestion()
Wend
End Sub

Je pense que je suis loin du résultat attendu :s
Merci d'avance :D

2 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 256
24 mai 2013 à 16:17
Bonjour,

bien vu pour le pseudo mais 0 sur le texte.
Pas de question, pas de description du problème, pas de fichier de test...

Déposer le fichier xls (réduit au nécessaire et anonymisé, avec les explications et éventuellement le résultat attendu) sur cjoint.com et coller ici le lien fourni.

eric
0
VBA (Vraiment Besoin d'Aide^^)
24 mai 2013 à 21:57
Je vous prie de bien vouloir m'excuser:


Voilà: http://cjoint.com/?0EyvVJycEYe

Je m' aperçois que le texte n'est pas très lisible je vais le recopier:

Le support est sur la feuille quizz.

Sur chaque ligne, depuis la première de la feuille de calcul courante, figure une question (en colonne B) et sa réponse (en colonne C). L'objet du jeu est le suivant : le programme questionne l'utilisateur en tirant au hasard une question et en vérifiant la réponse donnée par l'utilisateur avec celle attendue. Si la réponse donnée est la bonne, alors le programme positionne en colonne A un booléen VRAI. Ainsi, la prochaine question posée ne sera pas l'une des questions correctement répondues précédemment.

Et voilà les questions ou j'ai du mal:

Rédiger la signature de chaque sous-fonction et sous-procédure.

Remplir le corps de chaque sous-fonction et sous-procédure avec une instruction par défaut.

Déclarer les constantes COLONNE_INDICATEUR_FAIT, COLONNE_QUESTION et COLONNE_REPONSE, ainsi que la variable globale ligneMax en tête de module en spécifiant leur type et éventuellement une valeur compatible avec l'énoncé. Préciser de plus pourquoi la variable ligneMax n'est pas déclarée en constante. (fait mais je ne suis pas sure)

Remplacer le corps de chaque sous-fonction par son implémentation, en supposant que le numéro de ligne tiré par le programme est la ligne numéro 1.

Pour rappel, l'accès à la cellule d'une feuille de calcul peut s'effectuer via l'objet Cells(i, j) pour accéder la cellule de la i-ème ligne et j-ième colonne de la feuille. Utiliser autant que possible les constantes déclarées en tête de module, pour améliorer la lisibilité du programme.

Implémenter la fonction trouverNumeroProchaineQuestion.
Le programme va effectuer le tirage d'un nombre compris entre 1 et le nombre de questions renseignées dans la feuille de calcul. Puis, il va renvoyer le numéro de la première ligne trouvée pour laquelle la valeur booléenne n'est pas égale à VRAI ; c'est-à-dire pour laquelle le joueur n'a pas encore donné la bonne réponse.
Attention, à gérer correctement le numéro de la ligne de la dernière question.

Ajouter un compteur indiquant à l'utilisateur, en fin de partie, combien de fois il a joué et trouvé de bonnes réponses.
0

Discussions similaires