A
Arverne
Guest
Bonjour forum, Bonjour à tous
Je débute en VBA, j'ai voulu réaliser rapidement un petit programme pour m'aider en anglais.
Principe:
Sur la feuille 2 de mon classeur j'ai une liste de mot en anglais sur la colonne A avec leur traduction dans la colonne B.
La Macro indique un mot sur la feuille 1 colonne A et il faut saisir sa traduction en colonne B.
Bon,c'est sans prétention mais cela ne fonctionne pas.
En effet, j'ai pensé utiliser la mise en forme conditionnel, mais celà fonctionne pas si on utilise une autre feuille.
Savez vous comment je puis faire ?
Toute suggestion ou amélioration est la bienvenue.
Merci d'avance !
Je débute en VBA, j'ai voulu réaliser rapidement un petit programme pour m'aider en anglais.
Principe:
Sur la feuille 2 de mon classeur j'ai une liste de mot en anglais sur la colonne A avec leur traduction dans la colonne B.
La Macro indique un mot sur la feuille 1 colonne A et il faut saisir sa traduction en colonne B.
Bon,c'est sans prétention mais cela ne fonctionne pas.
En effet, j'ai pensé utiliser la mise en forme conditionnel, mais celà fonctionne pas si on utilise une autre feuille.
Savez vous comment je puis faire ?
Toute suggestion ou amélioration est la bienvenue.
Merci d'avance !
Code:
Sub Macro2()
Dim NbreDeMot As Integer
Dim Ligne As Integer
Dim Colonne As Integer
Dim DerniereLigne As Integer
Dim MotATraduire As String
Dim Col As String
'Nombre de mot à traduire
NbreDeMot = Sheets(2).UsedRange.Cells(Sheets(2).UsedRange.Count).Row
Randomize
'Selectionne le mot a traduire
Ligne = Int((NbreDeMot - 1 + 1) * Rnd + 1)
'Selectionne le sens a traduire
Colonne = Int((2 - 1 + 1) * Rnd + 1)
MotATraduire = Sheets(2).Cells(Ligne, Colonne)
'Récupère la derniere ligne de la feuille d exercice
DerniereLigne = Sheets(1).UsedRange.Cells(Sheets(1).UsedRange.Count).Row + 1
'Affiche le mot a traduire
Sheets(1).Cells(DerniereLigne, 1) = MotChoisi
If (Colonne = 1) Then
Col = 'B'
Else
Col = 'A'
End If
'Mise en forme conditionnel : Mettre en Vert si le mot saisie est bien traduit
Sheets(1).Cells(DerniereLigne, 2).FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:='=Feuil2!$' & Col & '$' & Ligne
'Sinon il est en rouge
Sheets(1).Cells(DerniereLigne, 2).FormatConditions(1).Font.ColorIndex = 10
End Sub