Créer un tableaux des scores

Bonsoir à tous,

Je remercie d'avance ceux qui prendront le temps de m'aider.

J'ai crée un petit questionnaire sur Excel 2010. Le programme marche, seulement j'aimerais lui rajouter une fonctionnalité, le fait d'enregistrer son score, si je puis m'exprimer ainsi, je m'explique : l'utilisateur droit tout d'abord entrer un pseudo puis il est amené au questionnaire, à chaque réponse il gagne ou perd des points qui sont retranscrits dans un tableau des scores. Jusqu'ici tout fonctionne bien. J'aimerais que si un autre utilisateur arrive, il puisse recommencer le questionnaire une nouvelle fois, sans que le score de l'ancien soit supprimé, donc sauvegarder son score sur la ligne suivante.

Voici ce qui se passe dans mon premier module :

Sub Rectangle3_Cliquer() 

pseudo = InputBox("Veuillez choisir un pseudo") 
Range("D4") = pseudo 
MsgBox ("Le questionnaire va débuter !" & vbCr & "Bonne réponse : +4 points" & vbCr & "Mauvaise réponse : -2 points") 
UserForm1.Show

Et voici ce qui se passe quand l'utilisateur clique sur une réponse lambda :

Private Sub CommandButton1_Click()
score = score - 2 
Range("H4") = score 
MsgBox ("Mauvaise réponse !" & vbCr & "-2 points")
UserForm1.Hide 
UserForm2.Show 

Comment faire ?

bonsoir,

essaie ceci, (non testé)

Sub Rectangle3_Cliquer() 

pseudo = InputBox("Veuillez choisir un pseudo") 
cellls(cells(rows.count,"d").end(xlup).row+1,"d") = pseudo 'mettre le pseudo dans la première case la cellule qui suit la dernière cellule utilisée en colonne D en partant du bas
MsgBox ("Le questionnaire va débuter !" & vbCr & "Bonne réponse : +4 points" & vbCr & "Mauvaise réponse : -2 points") 
UserForm1.Show
Private Sub CommandButton1_Click()
score = score - 2 
cellls(cells(rows.count,"h").end(xlup).row+1,"h") =  score  'mettre le score dans la première case la cellule qui suit la dernière cellule utilisée en colonne H en partant du bas
MsgBox ("Mauvaise réponse !" & vbCr & "-2 points")
UserForm1.Hide 
UserForm2.Show 

edit commentaire ajouté dans la macro

Bonsoir,

Premièrement, est-ce que tu pourrais m'expliquer cette commande ?

Ensuite, ça marche bien mais elle m'affiche le pseudo en 19D alors que mon tableau des scores a sa première cellule en D4, quels sont les éléments de ta commande à modifier pour le choix de la case ?

Merci pour ta réponse

Bonjour,

je t'ai ajouté des commentaires dans le code proposé.

si tu as le pseudo qui s'inscrit en D19, c'est qu'il y a quelque chose en D18. si tu veux que cela s'inscrive en D4, il ne peut rien y avoir de D4 jusqu'à la fin de la colonne.

Bonjour, je te joins mon programme car je ne comprends pas pourquoi le pseudo s'afficher plus bas alors que ton code semble marcher pour le nombre de points (j'ai copié le code uniquement dans le Userform1 pour tester).

Est-ce parce que mes parties du tableau sont fusionnées ? Si oui, comment résoudre ce problème ?

Et comment gérer le fait qu'arriver à la fin du tableau le code reparte à la première ligne ?

Merci pour ton aide !

bonjour,

une correction pour le pseudo.

Sub Rectangle3_Cliquer() 'début de la procédure activée lorsque l'utilisateur clique sur le Rectangle3

pseudo = InputBox("Veuillez choisir un pseudo") 'fait apparaître une boite de dialogue demandant le pseudo
c = Cells(Rows.Count, "c").End(xlUp).Row + 1
If c < 4 Then c = 4
if c> 15 then range("C4:C15").clearcontents:range("H4:D15").clearcontents:c=4

Cells(c, "c") = pseudo 'inscrit le pseudo en D4

MsgBox ("Le questionnaire va débuter !" & vbCr & "Bonne réponse : +4 points" & vbCr & "Mauvaise réponse : -2 points") 'ouvre une boite de dialogue avec le message présent entre les guillemets
UserForm1.Show 'montre le UserForm1

End Sub 'fin de la procédure

Bonsoir,

Encore une fois je te remercie de ta réponse mais le pseudo s'affiche en C4 et si je change le C dans ton code par D (D4 et E4 étant les cellules fusionnées où j'aimerais qu'apparaisse le pseudo) le pseudo s'affiche toujours en C4, et de plus, cette fois, rien ne s'affiche plus bas quand on recommence une partie.

Bonsoir,

automatiser des tableaux avec des cellules fusionnées c'est la galère. Cependant, je pense que cette fois-ci, c'est bon.

Sub Rectangle3_Cliquer() 'début de la procédure activée lorsque l'utilisateur clique sur le Rectangle3

pseudo = InputBox("Veuillez choisir un pseudo") 'fait apparaître une boite de dialogue demandant le pseudo
c = Range("d15:F15").End(xlUp).Row + 1
If c < 4 Then c = 4
If c > 15 Then Range("d4:f15").ClearContents: Range("H4:D15").ClearContents: c = 4

Cells(c, "d") = pseudo 'inscrit le pseudo en D4

MsgBox ("Le questionnaire va débuter !" & vbCr & "Bonne réponse : +4 points" & vbCr & "Mauvaise réponse : -2 points") 'ouvre une boite de dialogue avec le message présent entre les guillemets
UserForm1.Show 'montre le UserForm1

End Sub 'fin de la procédure

L'histoire du pseudo marche maintenant parfaitement. Il reste maintenant le problème des points car le code : cells(cells(rows.count,"h").end(xlup).row+1,"h") = score enregistre le score de l'utilisateur après chaque réponse données et pas pour chaque utilisateur après la fin du questionnaire.

Pourrais-tu également m'expliquer ce code en détails ?

Merci encore

bonsoir,

je crois que j'ai oublié de répondre

commentaires ajoutés et corrections faites dans ton code pour avoir les scores sur la même ligne que le pseudo.

https://www.cjoint.com/c/EBuaDWO0tOp

Tout fonctionne, je te remercie infiniment pour ton aide et tes explications !

Rechercher des sujets similaires à "creer tableaux scores"