Vocabulaire List

Bonjour, j'ai téléchargé un fichier Excel sur ce forum permettant de réaliser une liste de vocabulaire (Téléchargements --> utilitaires --> Vocabulaire List) Les codes VBA du fichier sont en libre accès.

Cependant, lorsque je veux réaliser ma propre liste, il est impossible pour moi d'utiliser le quiz sur la droite de l'écran :

image

J'arrive bien à utiliser les fonctions de recherche dans la partie juste à droite du tableau mais pour le Quiz, impossible de relancer une nouvelle question. Le VBA est codé surement sur le tableau entier et il comporte des lignes vides.

Auriez-vous une idée qui me permettrait de personnaliser ce fichier ?

Cordialement.

Bonjour Loic Lamps,

J'ai tenté le coup ...

Une fois la nouvelle liste de mots saisie ...

Fais un choix dans le combobox "Anglais" et un autre choix dans le combobox "Français" ...

Dès lors ... les quizs quizent bien ici ...

ric

Bonjour

vous pouvez modifier le code Alea_ENFR avec ceci :

Sub Alea_ENFR()

'Désactive le rafraichissement de l'affichage
    Application.ScreenUpdating = False

'Ote temporairement la protection de la feuille
    ActiveSheet.Unprotect

'Déclaration des variables
    Dim id As Integer
    Dim nb As Integer
    Dim eng As String
    Dim fra As String

'Supprime l'indicateur de bonne/mauvaise réponse et la proposition actuelle
    Range("K10") = ""
    Range("L10") = ""

'Détermine le nombre de mots dans la liste (nb)
'    Range("B2").Select
'    Selection.End(xlDown).Select

' la liste se trouvant dans un tableau structuré, il suffit de récupérer le nombre de ligne de ce dernier
' il n'y a qu'un seul tableau sur la feuille donc on prend le premier "1"
' sinon on peut inscrire son nom : Table_équivalence
    nb = ActiveSheet.ListObjects(1).ListRows.Count '    listobjets(1).Rows.Count 'ActiveCell.Row

'Génère un nombre entier aléatoire
    Randomize
    ' sous VBA il existe une fonction de "tirage au sort"
    ' RND donne un chiffre entre 0 inclus et 1 non inclu (0 à 0.999999999999)
    ' donc pour choisir une ligne de vocabulaire au hasard on fait un tirage
    ' RND multiplié par le nombre de ligne
    ' donc si 10 lignes dans le tableau alors le RND *10 irra de 0 à 9.99999999
    ' en prenant l'entier on aura alors 0 à 9
    ' le +1 permet d'aller de la ligne 1 du tableau à la ligne 10
    id = Int(Rnd * nb) + 1 'Application.WorksheetFunction.RandBetween(1, nb - 1)

'Détermine le mot en FRA et en ENG associés à l'ID
' il ne reste plus qu'à récupérer les valeurs de cette ligne en colonne 3 pour le français et en colonne 2 pour l'anglais
    fra = ActiveSheet.ListObjects(1).ListRows(id).Range.Cells(3) 'ListRows.CountApplication.WorksheetFunction.VLookup(id, Range("Table_équivalence[['#]:[Français]]"), 3, 1)
    eng = ActiveSheet.ListObjects(1).ListRows(id).Range.Cells(3) 'Application.WorksheetFunction.VLookup(id, Range("Table_équivalence[['#]:[Français]]"), 2, 1)
    Range("L8") = eng
    Range("L3") = fra

'Réactive la protection de la feuille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, AllowInsertingHyperlinks:=True

'Recentre l'affichage
    Range("L10").Select

'Réactive la protection de la feuille
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, AllowInsertingHyperlinks:=True

'Réactive le rafraichissement de l'affichage
    Application.ScreenUpdating = True

End Sub

Le fichier ainsi modifié :

Je n'ai fais que cette modification ainsi que le fait de supprimer les lignes vides du tableau !
tableau structuré = Tableau ne comportant pas de lignes vides = Tableau qui s'allonge automatiquement dès qu'une nouvelle donnée est inscrite sur la première ligne vide sous le tableau dans une des colonnes !

Donc pour ajouter des données il suffit de renseigner soit la colonne B en anglais soit la colonne C en français, la colonne A est "automatique" par formule mais elle ne sert pas à grand chose, je ne l'ai pas supprimé pour garder une compatibilité avec les autre code du fichier.

@ bientôt

LouReeD

Rechercher des sujets similaires à "vocabulaire list"