Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

jeanpierre

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

Re,

Alors le code de job75 répond à ta question, il suffit de remplir la feuille "dico" de son fichier.

Colonne A les mots anglais et colonne B la traduction française.
 

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

job75

XLDnaute Barbatruc
La macro précédente est rapide, pour tester j'ai sélectionné la plage A1:A10000 et touche Ctrl enfoncée j'ai validé l'entrée du texte "cat and dog", l'exécution se fait chez moi en 0,27 seconde.
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…