VBA - Script - Outil pour apprendre du voc

Résolu/Fermé
YAC - 15 déc. 2011 à 11:41
 YAC - 15 déc. 2011 à 13:28
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
15 déc. 2011 à 12:14
Bonjour,
Regarde si ce topic peu t'aider
A+
0
Merci beaucoup !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
15 déc. 2011 à 12:37
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
Classe, ça marche tip top, merci beaucoup !
0