IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Translate google API et VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Bonjour,

    Je sollicite votre intelligence afin de m'aider : j'ai dans mon association une feuille XLS qui nous sert de rapport. Hors ce rapport est fait pour des gens qui ne lisent pas le français mais le hindi !!
    J'ai essayé de faire appel aux fonctions de l'API de google mais, je suis novice en VBA , et je comprends pas mon erreur...

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub translateJulien()
    textToBeTranslated = Range("A1").Value
        Set objhttp = CreateObject("MSXML2.ServerXMLHTTP")
        URL = "https://www.googleapis.com/language/translate/v2?key=MA_CLE_TRANSLATION_GOOGLE&q=" & textToBeTranslated & "&source=en&target=de"
        objhttp.Open "GET", URL, False
        objhttp.setTimeouts 1000000, 1000000, 1000000, 1000000
        objhttp.send ("")
        Range("A2").Value = objhttp.responseText
    End Sub
    Pour l'instant, je n'en suis qu'à essayer de comprendre comment ça marche, soyez indulgent . Une belle erreur m'est renvoyée...
    Auriez-vous une idée, merci et à très bientôt !

    Bonjour,
    je me suis dit que je devais préciser mes erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    // API callback
    translateText({
     "error": {
      "errors": [
       {
        "domain": "global",
        "reason": "badRequest",
        "message": "Bad Request"
       }
      ],
      "code": 400,
      "message": "Bad Request"
     }
    }
    );
    Merci et bonne journée

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Est tu sur de la validité de ta clef ?

  3. #3
    Membre confirmé Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    Bonjour,
    tu as raison, la clé que j'ai utilisé était une clé obsolète. Je l'ai renouvelée, et maintenant ça marche ! Merci beaucoup.

    Maintenant, il faut que j'extrais mon texte traduit de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // API callback
    translateText({
     "data": {
      "translations": [
       {
        "translatedText": "Verehrer"
       }
      ]
     }
    }
    );
    A très bientôt sans doute !

    Bonjour,
    voici le code final de l'extraction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Sub translateJulien()
    Dim textToBeTranslated As String
    Dim translate As String
     
    textToBeTranslated = Range("A1").Value
        Set objhttp = CreateObject("MSXML2.ServerXMLHTTP")
        'var source = https://www.googleapis.com/language/translate/v2?key=IAIzaSyBaJrqCV1r_UA4FnpqhIvq0Uwz5t371juwY&source=fr&target=de&callback=translateText&q=' & textToBeTranslated
     
        URL = "https://www.googleapis.com/language/translate/v2?key=MA_CLE_TRANSLATION_GOOGLE&source=en&target=hi&callback=translateText&q=" & textToBeTranslated
        Call objhttp.Open("GET", URL, False)
        objhttp.setTimeouts 1000000, 1000000, 1000000, 1000000
        Call objhttp.send("")
        translate = objhttp.responseText
        translate = Right(translate, Len(translate) - InStr(1, translate, "translatedText") - 16)
        translate = Left(translate, InStr(2, translate, Chr(34)))
        translate = Replace(translate, """", Chr(39))
        Range("A2").Value = translate
    End Sub
    Je vais faire une fonction qui prendra en argument la cellule à traduire.
    A très bientôt

    et voici l'automatisation avec une fonction. Si vous avez des suggestions, elles sont les bienvenues ! Bonne journée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Function translateIntoHindi(cellule)
    textToBeTranslated = Range(cellule).Value
        Set objhttp = CreateObject("MSXML2.ServerXMLHTTP")
        'var source = https://www.googleapis.com/language/translate/v2?key=IAIzaSyBaJrqCV1r_UA4FnpqhIvq0Uwz5t371juwY&source=fr&target=de&callback=translateText&q=' & textToBeTranslated
     
        URL = "https://www.googleapis.com/language/translate/v2?key=AIzaSyD5s_NZEjhR1R8-HF6thbUqayXMNDoTOwU&source=en&target=hi&callback=translateText&q=" & textToBeTranslated
        Call objhttp.Open("GET", URL, False)
        objhttp.setTimeouts 1000000, 1000000, 1000000, 1000000
        Call objhttp.send("")
        translate = objhttp.responseText
        translate = Right(translate, Len(translate) - InStr(1, translate, "translatedText") - 16)
        translate = Left(translate, InStr(2, translate, Chr(34)))
        translate = Replace(translate, """", Chr(32))
        Range(cellule).Value = translate
    End Function
     
    Sub translateJulienAutomation()
        Dim i As Integer
        Dim sarray As Variant
        sarray = Array("D", "G", "H", "t")
        For Each tt In sarray
            For i = 1 To 350
                translateIntoHindi (tt & i)
                Next i
            Next tt
    End Sub
    C'est hallucinant la puissance du code de Google API, je suis juste déçu qu'ils ne supportent pas le langage Marathi pour la V2

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Function TranslateIntoHindi(ByVal Txt As String) As String
    Dim Objhttp As Object, Translate As String
    Dim URL As String
     
    Set Objhttp = CreateObject("MSXML2.ServerXMLHTTP")
    URL = "https://www.googleapis.com/language/translate/v2?key=AIzaSyD5s_NZEjhR1R8-HF6thbUqayXMNDoTOwU&source=en&target=hi&callback=translateText&q=" & Txt
    Call Objhttp.Open("GET", URL, False)
    Objhttp.SetTimeouts 1000000, 1000000, 1000000, 1000000
    Call Objhttp.Send("")
    Translate = Objhttp.ResponseText
    Set Objhttp = Nothing
    Translate = Mid(Translate, InStrRev(Translate, "translatedText") + 17)
    Translate = Left(Translate, InStr(Translate, "}") - 1)
    Translate = Replace(Translate, Chr(34), Chr(32))
    TranslateIntoHindi = Trim(Translate)
    End Function

  5. #5
    Membre confirmé Avatar de figarojuju
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2006
    Messages : 133
    Par défaut
    c'est beau du beau code
    J'ai une autre question, connaitriez-vous une API pour la translitération ?
    la V1 de Google semble ne plus être soutenue...http://code.google.com/apis/language/#Transliteration

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Google.api.Translate problem (ASP.net MVC3)
    Par asma86 dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 27/11/2011, 21h09
  2. [WebServices][WSDL] Utilisation (basique) de la Google API
    Par Rom_1 dans le forum Services Web
    Réponses: 5
    Dernier message: 07/07/2009, 22h55
  3. Google API ?
    Par Piolet dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 03/10/2008, 14h43
  4. [Web Service] Google-API Free
    Par dev_php51 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 31/10/2007, 16h04
  5. [Web Service][PHP Script] Google API Search
    Par franck.automaticien dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/07/2007, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo