Option Explicit
'variable de module conserve sa valeur entre deux appels de testmot()
'Premier = True si on a affiché un mot anglais à traduire
'Premier = false si on a affiché la traduction
Dim Premier As Boolean
Sub TestMot()
If Premier Then
'on affiche la traduction en utilisant directement les fonctions
'de Excel par le biais de Application.WorksheetFunction
Range("H2") = Application.WorksheetFunction.Index(Range("motfr"), _
Application.WorksheetFunction.Match(Range("G2"), Range("MotGB"), 0))
'la seconde étape (traduction affichée) est faite
Premier = False
Else
'on efface la traduction française précédente
Range("H2") = ""
'on affiche le mot anglais à traduire en utilisant directement les fonctions
'de Excel par le biais de Application.WorksheetFunction
Range("G2") = Application.WorksheetFunction.Index(Range("MotGb"), _
Application.WorksheetFunction.RandBetween(1, Range("MotGb").Rows.Count))
'la première étape (mot à traduite) est faite
Premier = True
End If
End Sub