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
et les fonctions
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
bonne utilisation
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
Partager