Traduction automatique de toute une colonne

Bonjour la communauté,

Je souhaite traduire la totalité d'une colonne.

J'arrive via le module de traduction à traduire une cellule à la fois.

Mon but serait de traduire une colonne entière.

La langue d'arrivée et toujours le Français

Je voudrais éviter de passer par un traducteur tiers (hors excel) pour gagner en manipulation.

L'ordinateur est connecté à Internet.

Problématiques :

La langue de départ n'est pas forcément la même à chaque fois.

Le texte à traduire est toujours dans la même colonne mais cette colonne peux varier d'un tableaux à l'autre.

Version excel : 2007

Merci par avance

Pascal

Bonjour Pascal13009,

si ça te convient, de suite le code et le fichier exemple:

Sub GoogTranslate()

Dim IE As Object, Trans As String, snarT As String
Dim I As Long, LastA As Long, checkBack As Boolean

Trans = Range("G1").Value
checkBack = True            '<<< traduction inverse True /False
'
snarT = "#" & Mid(Trans, 5, 3) & Mid(Trans, 2, 3)
Set IE = CreateObject("InternetExplorer.Application")
LastA = Cells(Rows.Count, 1).End(xlUp).Row
For I = 1 To LastA
    If Cells(I, 1) <> "" Then
        With IE
            .Visible = True
            .Navigate "https://translate.google.fr/" & Trans & Cells(I, 1).Value
            Application.Wait (Now + TimeValue("0:00:01"))
            Do While .Busy: DoEvents: Loop
            Do While .readyState <> 4: DoEvents: Loop
            Cells(I, 2).Value = .Document.all("result_box").innertext
            If checkBack Then
                .Navigate "https://translate.google.fr/" & snarT & Cells(I, 2).Value
                Application.Wait (Now + TimeValue("0:00:01"))
                Do While .Busy: DoEvents: Loop
                Do While .readyState <> 4: DoEvents: Loop
                Cells(I, 3).Value = .Document.all("result_box").innertext
            End If
        End With
    End If
Next I

IE.Quit

Set IE = Nothing

End Sub

Bonjour,

Merci pour cela.

Je me permets deux questions :

Cela fonctionne t 'il quelque soit la langue ?

Le texte doit il être dans la colonne A ?

@micalement

Pascal

Bonjour Pascal,

dans le fichier exemple la langue de départ et d'arrivée est indiqué par un code dans la cellule G1 (#en/fr/ = anglais/français). On peut bien sûr changer les langues avec le code de la langue requise (de pour l'allemand - es pour l'espagnol, pt pour le portuguais, etc.).

Au lieu d'entrer les langues dans une cellule du fichier on peut écrire directement dans le code, en modifiant la ligne:

Trans = Range("G1").Value

avec

Trans = "#en/fr/"

Si on ne veut pas de traduction inverse on doit changer dans le code VBA

checkBack = False '<<< traduction inverse True /False

La colonne contenant le texte à traduire, la colonne où écrire la phrase traduite et la colonne avec la traduction inverse sont indiquées dans le code VBA par le numéro progressif (1 = Colonne A, 2 = Colonne B et ainsi de suite). On peut

adapter les trois colonnes en changeant le numéro correspondant dans le ligne suivantes. Si, par exemple, la phrase est dans la colonne E (5ème colonne) il faut remplacer dans le code la valeur 1 avec 5

LastA = Cells(Rows.Count, 1).End(xlUp).Row '1ère colonne avec la phrase originale

If Cells(I, 1) <> "" Then '1ère colonne avec la phrase originale

.Navigate "https://translate.google.fr/" & Trans & Cells(I, 1).Value '1ère colonne avec la phrase originale

Cells(I, 2).Value = .Document.all("result_box").innertext '2ème Colonne avec la phrase traduite

.Navigate "https://translate.google.fr/" & snarT & Cells(I, 2).Value '2ème Colonne avec la phrase traduite

Cells(I, 3).Value = .Document.all("result_box").innertext '3ème Colonne avec la traduction inverse

J'espère que mon explication est suffisamment claire.

Bonjour,

Merci pour ton explication, elle est très claire.

Sais tu si il serait possible d'obtenir le même résultat sur un ordinateur non connecté à Internet et en passant par le système de traduction interne d'Excel ?

Merci

Pascal

Merci

J'ai tout compris.

J'ai affecté un bouton à cette macro dans la barre de lancement rapide mais j'arrive pas à faire apparaître le texte du nom, je ne peux que choisir une icone....Grrrrrr

Je voulais faire une macro attribuée à l'anglais, une pour l'espagnol ....pour le langues que je rencontre le plus souvent lol

Rechercher des sujets similaires à "traduction automatique toute colonne"