Programme d'apprentissage d'une liste de vocabulaire
Bonjour à tous,
Je suis actuellement en train de réviser pour un examen d'anglais. Je dois apprendre des centaines de mots.
J'ai donc une liste de vocabulaire, avec en colonne A le mot/expression en anglais et en B la traduction en français.
J'ai déjà réfléchit à une logique de programme mais c'est bien sur critiquable et améliorable pour s'adapter à l'outil VBA.
Je vous joint mon fichier excel de vocabulaire sur lequel est basé mes exemples.
J'aimerai que le programme choisisse aléatoirement une cellule de la colonne B, affiche une fenêtre où on doit écrire le mot anglais correspondant. Par exemple "Traduis indicatif "
Une fois appuyé sur entrée, une nouvelle fenêtre s'affiche avec une indication sur la réussite ou non du mot précédant et propose directement un nouveau mot (histoire que l'apprentissage soit efficace et rapide).
Par exemple en cas de bonne réponse " Bon réponse, traduis ignorer"
En cas de mauvaise réponse "La réponse était callsign, traduis ignorer"
J'ai imaginé également un système de pondération. Je m'explique. Si un mot a été bien traduit, il peux être consideré comme acquis.
Par exemple en colonne C, on pourrait imaginer afficher un "1" si l'élément à bien été traduit, et la boucle s'arrêterais dès que tous les les cellules de la colonne C comporte un "1".
Si vous pouvez me donner un coup de pouce, ça serais vraiment sympa de votre part. De plus, je pense que ce programme pourrait être utilisé par beaucoup d'utilisateurs.
Merci de m'avoir lu,
Benjamin
Bonsoir,
Une proposition:
Lorsque l'on charge le userform :
1-Une traduction est proposée, on saisit sa réponse et on valide.
2-Apparait à la validation, la bonne réponse et si l'orthographe est correcte
-> ( on compare les 2 en minuscule) : donc si saisie en majuscule mais que l'orthographe est bonne c'est ok
3- a chaque passage sur un mot un compteur de passage note qu'on passe dessus
4 - a chaque orthographe parfaite on le note
5- quand le % d'orthographe parfaite (nb ortho parfaite/nb de passage) > 70% alors ce mot est considéré assimilé
si et seulement si on est déjà tombé sur ce mot ( si inf à 70% => assimilé = NON ) si jamais passé sur le mot = Non commencé
Si un mot est assimilé, il ne sera plus proposé.
A vous de tester le fichier joint...
Le code :
Public Sub CommandButton1_Click()
If validate = "OUI" Then
MsgBox "Vous avez déja validé votre réponse, passez à une autre traduction ..."
GoTo sortie
End If
validate = "OUI"
'affichage Réponse
Label4 = mot_ang
'j'annote que je passe sur le mot : statistiques
Sheets("Liste").Range("A" & choix_lig).Offset(0, 2).Value = (Sheets("Liste").Range("A" & choix_lig).Offset(0, 2).Value + 1)
'analyse saisie et traduction
If LCase(mot_ang) = LCase(TextBox1) Then
Label5 = "OUI"
Sheets("Liste").Range("A" & choix_lig).Offset(0, 3).Value = (Sheets("Liste").Range("A" & choix_lig).Offset(0, 3).Value + 1) ' Ecriture sans faute
Else
Label5 = "NON"
End If
sortie:
End Sub
Public Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub CommandButton3_Click()
If TextBox1 = "" Then
MsgBox "Allez, proposez une traduction !"
GoTo sort
End If
validate = "NON"
Label4 = ""
Label5 = ""
TextBox1 = ""
Call UserForm_Activate
sort:
End Sub
Public Sub UserForm_Activate()
'nombre de mots à traduire
dlig = Sheets("Liste").Range("A" & Rows.Count).End(xlUp).Row
flig = 2
autre_mot:
' Choix aléatoire
choix_lig = Int((dlig - flig + 1) * Rnd + 1)
' je regarde si le mot n'est pas deja assimilé grace à ma colonne assimilation
If Sheets("Liste").Range("F" & choix_lig).Value <> "OUI" Then
choix_lig = choix_lig
Else
GoTo autre_mot
End If
'On identifie le mot
mot_ang = Sheets("Liste").Range("A" & choix_lig).Value
mot_fr = Sheets("Liste").Range("A" & choix_lig).Offset(0, 1).Value
'on pose la question
Label1 = " Traduire le mot : " & Chr(10) & Chr(10) & mot_fr
End Sub
merci ti_chou_3
Ca correspond vraiment à ce que je voulais.
Une petite remarque pour ceux qui téléchargerons le fichier, il faut remplacer dans la feuille "liste" colonne F, 70 par 0,70.
Avec ca j'ai plus aucune excuse pour manquer de vocabulaire.
Merci infiniment,
Benjamin
Salut,
Les derniers messages datent un peu, mais j'aimerai utiliser le même genre de programme pour étudier mes listes. Je cherche ça depuis assez longtemps, je suis trop contente d'avoir trouvé une bonne base...
Evidemment, j'aimerai l'adapter en utilisant mes listes de vocabulaire, seulement, quand je les insère, le programme bug et ne fonctionne plus (il m'affiche "erreur d’exécution 13 - incompatibilité de type".
Quelqu'un sait m'aider? Je ne maîtrise que les fonctionnalités de base d'Excel donc là je suis complètement dépassée....
J'aimerai aussi pouvoir utiliser le programme en filtrant les éléments (pour qu'il ne m'interroge sur les verbes, que sur un chapitre,...) Est-ce si je filtre dans la feuille de vocabulaire le programme s'adaptera et ne posera que des questions sur ces mots-là?
Un tout tout grand merci pour votre aide!!!!
Bonjour
Tu a ajouté trois colonnes dans la zone liste, tu dois aussi modifier la macro en conséquence.
Public Sub CommandButton1_Click()
If validate = "OUI" Then
MsgBox "Vous avez déja validé votre réponse, passez à une autre traduction ..."
GoTo sortie
End If
validate = "OUI"
'affichage Réponse
Label4 = mot_ang
'j'annote que je passe sur le mot : statistiques
Sheets("Liste").Range("A" & choix_lig).Offset(0, 2).Value = (Sheets("Liste").Range("A" & choix_lig).Offset(0, 2).Value + 1)
'analyse saisie et traduction
If LCase(mot_ang) = LCase(TextBox1) Then
Label5 = "OUI"
Sheets("Liste").Range("A" & choix_lig).Offset(0, 3).Value = (Sheets("Liste").Range("A" & choix_lig).Offset(0, 3).Value + 1) ' Ecriture sans faute
Else
Label5 = "NON"
End If
sortie:
End Sub
remplacer
2 par 5
et 3 par 6
je pense que le problème est la
Ok, merci beaucoup, c'était tout simple!
Et y a-t-il moyen que le programme ne m'interroge que sur le contenu du filtrage? Je m'explique, ce serait vraiment bien si je pouvais filtrer par nature de mots dans la feuille "liste" et le programme se réfère seulement aux éléments restants après le filtrage... Est-ce possible?
Encore merci pour l'aide!
re
La il y a un peu de travail de programmation à faire, je regarde dans la semaine quelque chose de simple, en passant peut être, par une feuille base de donnée avant et un filtre élaboré, si j'ai le temps j'essai de te proposer quelque chose!!
Merci, c'est vraiment hyper gentil!
Bonsoir,
Petite question bête..., comment fait-on pour réinitialiser le compteur?
Merci d'avance!
Belle soirée à tous
Silvia