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 |
Partager