VBA - Script - Outil pour apprendre du voc

Résolu
YAC -  
 YAC -
Bonjour,

J'aimerais, à partir d'un tableau excel de 2 colonnes (une avec des mots en français, l'autre avec la traduction en allemand), avoir un script qui, lorsqu'on l'exécute, affiche dans une boîte de dialogue le mot en français ; et l'utilisateur doit entrer le mot en allemand. Si le mot n'est pas trouvé, il est redemandé à la fin, et ce jusqu'à ce que tous les mots aient été trouvés. Voilà l'idée de base. En gros c'est pour avoir un outil d'apprentissage du vocabulaire plus ou moins intéractif, avec une liste de mots personnalisés.

Est-ce que quelqu'un aurait un tel script sous la main, ou quelque chose qui y ressemble ?

Merci d'avance...
A voir également:

2 réponses

lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Regarde si ce topic peu t'aider
A+
0
YAC
 
Merci beaucoup !
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Une solution en VBA : code à intégrer dans un module standard :

Sub Vocabulaire()
Dim Mots() As String, Traduction As String
Dim Cpt As Integer, BonneTraduc As Integer
Dim DrLig As Long, Lign As Long
Const NombreDeMotsAtraduire As Integer = 10

ReDim Mots(2, NombreDeMotsAtraduire)
'dans la feuille Feuil2 on a en colonne :
    'A : les mots en Français
    'B : les mots en Allemand
With Sheets("Feuil2")
    DrLig = .Range("A" & Rows.Count).End(xlUp).Row - 1
    For Cpt = 0 To NombreDeMotsAtraduire - 1
        Randomize
        Lign = CInt(Rnd * DrLig) + 1
        Mots(1, Cpt) = .Range("A" & Lign)
        Mots(2, Cpt) = .Range("B" & Lign)
    Next
End With
Cpt = -1
Do While BonneTraduc < NombreDeMotsAtraduire
    If Cpt < NombreDeMotsAtraduire - 1 Then
        Cpt = Cpt + 1
    Else
        Cpt = 0
    End If
    If Mots(1, Cpt) <> "" Then
        Traduction = InputBox(Mots(1, Cpt), "Traduire le mot : ")
        If Traduction = Mots(2, Cpt) Then
            BonneTraduc = BonneTraduc + 1
            Mots(1, Cpt) = ""
        End If
    End If
Loop
MsgBox "Fini!"
End Sub
0
YAC
 
Classe, ça marche tip top, merci beaucoup !
0