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...

2 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    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
    1. YAC
       
      Classe, ça marche tip top, merci beaucoup !
      0