macro pour traduire

mythotem

XLDnaute Junior
Bonjour à tous !
Je cherche une macro pour traduire des mots anglais se trouvant n'importe où sur une feuille excel (cat=chat, dog=chien, house=maison , etc etc .....)
Merci d'avance.
Mythotem.
 

jeanpierre

Nous a quitté
Repose en paix
Re : macro pour traduire

Bonjour mythotem,

Un dico.moyen c'est quand même plus de 1000 pages à raison de 50 ou 60 mots par pages au minimum.....

Va falloir l'écrire la macro...... Courage.

Il existe quelques applications qui font déjà ceci..... mais faut chercher....

Je ne pense pas que quelqu'un, ici ou ailleurs, ait déjà créé ce genre de macro sauf peut-être pour une centaine de mots ou expressions..

Bon après-midi.

Jean-Pierre
 

job75

XLDnaute Barbatruc
Re : macro pour traduire

Bonjour mythotem, salut jeanpierre,

Un essai montrant très partiellement comment utiliser un dico en VBA...

La macro dans le code de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Dim txt$, i As Integer, trad As Variant
txt = Application.Trim(Target)
For i = 0 To UBound(Split(txt, " "))
trad = Application.VLookup(Split(txt, " ")(i), Sheets("dico").Range("A:B"), 2, 0)
If Not IsError(trad) Then txt = Replace(txt, Split(txt, " ")(i), trad)
Next
Application.EnableEvents = False
Target = txt
Application.EnableEvents = True
End Sub

A+
 

Pièces jointes

  • Dico.xls
    32 KB · Affichages: 251
  • Dico.xls
    32 KB · Affichages: 241
  • Dico.xls
    32 KB · Affichages: 268

jeanpierre

Nous a quitté
Repose en paix
Re : macro pour traduire

Re, Salut à toi job,

C'est vrai que je me suis mal exprimé..... (resté sur les termes de la question)

Ce n'est pas la macro qui va être longue (la preuve dans ton exemple), mais la liste des mots et leur correspondance....

Bon WE.

Jean-Pierre
 

antikiste

XLDnaute Nouveau
Bonjour,

je déterre ce post car le fichier dico m'est utile.
le seul inconvénient c'est qu'il faut écrire absolument le mot pour traduire, or j'aurais voulu faire un copier coller d'une liste de mots et que cela les traduise sans les copier un à un,

est ce possible ?
 

job75

XLDnaute Barbatruc
Bonjour antikiste, le fil, le forum,

Voyez le fichier joint et cette macro nettement plus élaborée :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, UsedRange)
If Target Is Nothing Then Exit Sub
Dim d As Object, tablo, i&, txt$, s
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
tablo = Sheets("dico").[A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide
For i = 1 To UBound(tablo)
    d(tablo(i, 1)) = tablo(i, 2)
Next i
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each Target In Target 'si entrées multiples (copier-coller)
    txt = Trim(Target)
    s = Split(txt)
    For i = 0 To UBound(s)
        If d.exists(s(i)) Then s(i) = d(s(i)) 'traduction
    Next i
    Target = Join(s)
Next Target
Application.EnableEvents = True
End Sub
Je salue ici la mémoire de jeanpierre qui nous a quittés il y a pas mal de temps.

A+
 

Pièces jointes

  • Dico(1).xlsm
    19.1 KB · Affichages: 16

antikiste

XLDnaute Nouveau
Bonjour,

c'est top mais malheureusement on est pas exactement sur ce dont j'ai besoin personnellement...
j'aurais voulu que dans l'onglet traduction j'écrive ma liste de mot au fur et a mesure, cat / dog / fish

mais que la traduction se fasse directement dans l'onglet principal ou sur une colonne connexe, mais sans que j'ai à réecrire chaque mot,

Dans mon exemple, admettons que je copie colle "fish and chips" dans l'onglet principal, cela traduirait par "poisson" seulement, directement.

je pense faire autrement je vais pas saouler le monde entier pour mes problèmes de compta !
merci
 

Discussions similaires

Réponses
6
Affichages
432

Statistiques des forums

Discussions
312 448
Messages
2 088 504
Membres
103 872
dernier inscrit
Gufre