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

Contribuez Discussion :

Translation dynamique dans une cellule


Sujet :

Contribuez

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut Translation dynamique dans une cellule
    bonjour a tous
    je vous propose aujourd'hui la translation d'une langue en une autre dans une cellule en utilisant google translation dynamiquement

    un item au menu contextuel des cellules a été ajouté ("traduire cette valeur")
    pour commencer on ajoute l'item au démarrage du classeur
    attention
    activez la reference microsoft html library et microsof internet control


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Resets'on reset le menu a la fermeture du classeur
    End Sub
    Private Sub Workbook_Open()
    MenuCell' on appelle la fonction pour ajouter l'item au menu contextuel
    End Sub
    et les fonctions

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    Option Explicit
     
    Sub MenuCell()
        Dim Mc As CommandBarControls, cpop, cbut, liste1 as string,i as variant
        Application.CommandBars("cell").Reset
        'liste des langue
        liste1 = Array("Auto_Detection", "Afrikaans", "Albanian", "Arabic", "Armenian", "Azerbaijani", "Basque", "Belarusian" _
               , "Bengali", "Bulgarian", "Catalan", "Chinese", "Croatian", "Czech", "Danish", "Dutch", "English", "Esperanto", "Estonian" _
               , "Filipino", "Finnish", "French", "Galician", "Georgian", "German", "Greek", "Gujarati", "Haitian Creole", "Hebrew", "Hindi" _
               , "Hungarian", "Icelandic", "Indonesian", "Irish", "Italian", "Japanese", "Kannada", "Korean", "Latin", "Latvian", "Lithuanian" _
               , "Macedonian", "Malay", "Maltese", "Norwegian", "Persian", "Polish", "Portuguese", "Romanian", "Russian", "Serbian", "Slovak" _
               , "Slovenian", "Spanish", "Swahili", "Swedish", "Tamil", "Telugu", "Thai", "Turkish", "Ukrainian", "Urdu", "Vietnamese", "Welsh", _
                       "Yiddish")
        Set Mc = CommandBars("Cell").Controls
        Set cpop = Mc.Add(msoControlPopup, 1, , 1, Temporary:=True)
        cpop.Caption = "traduire cette valeur"
        For i = 0 To UBound(liste1)
            Set cbut = cpop.Controls.Add(Type:=msoControlButton)
            With cbut
                .FaceId = 139
                .Caption = liste1(i)    '<-- label du bouton
                .OnAction = "traduction"
                .Tag = i
            End With
        Next
    End Sub
     
    Sub Resets()
        Application.CommandBars("cell").Reset
    End Sub
     
    Public Function traduction()
        Dim indexlgout As Long
       Dim IE As Object, cel
        indexlgout = CommandBars.ActionControl.Tag
         Set cel = ActiveCell
        Set IE = CreateObject("InternetExplorer.application")
        'on ouvre la page avec les donnnées
        IE.navigate "http://translate.google.com/#" & indexlgout & "/" & 0 & "/" & ActiveCell.Value    '0represente l'auto detection pour la langue de depart
        IE.Visible = False    'rend invisible IE
        wait_ie IE    'attente du chargement complet de la page
        Application.Wait (Now + TimeValue("0:00:2"))    'attente de l'inscription des données dans le control et le resultat
        wait_ie IE    'attente du rafraichissement de la page avec la traduction
        ActiveCell = IE.Document.all("result_box").innertext    'on récupere la traduction
        IE.Quit    'on ferme l'object IE(l'instantiation d'internet explorer)
    End Function
    'fonction d'attente du chargement complet de la page
    Function wait_ie(IE)
        IE.Visible = False
        Do Until IE.ReadyState = 4
            DoEvents
        Loop
    End Function
    bonne utilisation
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Et si les macros ont étés désactivées pour des raison de sécurité !

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour montor

    je pensais être dans les contributions Excel vba ce qui implique que vba est activé
    enfin je pense

    maintenant si tu a une solution sans macro je veux bien la connaitre

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  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
    A Patrick
    Es tu sûr que liste1 est un String??

    Une petite question, tu n'as pas spécifié la langue d'entrée

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour mercatog

    ouppsss!!!! tu as raison je n'ai pas modifié le type.

    Avant je l'utilisais en string avec un split par les "," je ne l'ai pas modifié par la suite.

    Tu as raison je modifie tout de suite.
    edit:

    Ne pouvant pas le rééditer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Mc As CommandBarControls, cpop, cbut, liste1 as variant,i as variant
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    pour la langue de depart c'etait deja mis en place par le 0 qui signifie "l'auto detection "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IE.navigate "http://translate.google.com/#" & indexlgout & "/" & 0 & "/" & ActiveCell.Value    '0 represente l'auto detection pour la langue de depart
    metre "public liste1" en haut de module

    et a la place de 0 metrre liste(X) x representant la langue de sortie dans liste1
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. Calcul dans une cellule dynamique
    Par laplumedoie dans le forum Composants
    Réponses: 0
    Dernier message: 17/04/2014, 16h40
  2. ajout dynamique de combobox dans une cellule
    Par kelvir dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2011, 14h45
  3. Réponses: 5
    Dernier message: 15/03/2011, 10h23
  4. [FPDF] Contenu dynamique dans une cellule
    Par HwRZxLc4 dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 27/12/2007, 12h45
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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