Bonjour la communauté

Je me suis lancé le défi de réaliser un petit programme de création de dictionnaire multilingues pour intégrer dans mes fichiers.
L'objectif sera de créer des interfaces multilinguismes dans EXCEL, WORD, POWERPOINT, et j'en passe.
L'utilisation de la traduction via bing n'étant pas convaincante pour nos collaborateurs.

Du coup, je me tourne vers Reverso que nous trouvons plus adapté.

Je scrap sans souci majeur le site, et peux récupérer la traduction en ayant envoyé un mot ou une phrase à traduire.
Mon problème est que je n'arrive pas à piloter la liste de sélection des langues pour réaliser les recherches en fonction de ma langue d'entrée et de la langue attendue en traduction.
Je suis obligé, à ce jour de le faire manuellement. Ce qui n'est vraiment pas top.

Aussi, le site est Reverso

J'avoue que je suis une tanche en HTML et rencontre bien du mal à comprendre le mode de fonctionnement du site
La liste de sélection de la langue d'entrée est gérée par ce code :

Code HTML : 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
<select name="ctl00$cC$ucDirections$ddlSrc" id="cC_ucDirections_ddlSrc" style="display: none;">
	<option value="1031">Allemand</option>
	<option value="1033">Anglais</option>
	<option value="1025">Arabe</option>
	<option value="1028">Chinois</option>
	<option selected="selected" value="1034">Espagnol</option>
	<option value="1036">Français</option>
	<option value="1037">Hébreu</option>
	<option value="1040">Italien</option>
	<option value="1041">Japonais</option>
	<option value="1043">Néerlandais</option>
	<option value="1045">Polonais</option>
	<option value="2070">Portugais</option>
	<option value="1048">Roumain</option>
	<option value="1049">Russe</option>
	<option value="1055">Turc</option>
 
</select><div tabindex="0" class="nice-select"><span class="current">Espagnol</span><ul class="list"><li class="option" data-value="1031">Allemand</li><li class="option" data-value="1033">Anglais</li><li class="option" data-value="1025">Arabe</li><li class="option" data-value="1028">Chinois</li><li class="option selected" data-value="1034">Espagnol</li><li class="option" data-value="1036">Français</li><li class="option" data-value="1037">Hébreu</li><li class="option" data-value="1040">Italien</li><li class="option" data-value="1041">Japonais</li><li class="option" data-value="1043">Néerlandais</li><li class="option" data-value="1045">Polonais</li><li class="option" data-value="2070">Portugais</li><li class="option" data-value="1048">Roumain</li><li class="option" data-value="1049">Russe</li><li class="option" data-value="1055">Turc</li></ul></div>

Si je comprends bien, il y a deux listes à proprement parlé, une en Select/Option et une en Ul/li. là déjà je bug... pourquoi ? (si quelqu'un peut m'expliquer la logique)

Bref, revenons à nos moutons

Sans rentrer de tout mon code, la partie qui nous intéresse (et vous aussi qui me lisent ) est celle-ci :
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
Dim oIE As Object
    Set oIE = CreateObject("InternetExplorer.Application")
 
    Dim oHTML_doc As Object
 
    oIE.Visible = True
    oIE.navigate sURLReverso
 
    ' Statusbar let's user know website is loading
    Application.StatusBar = "www.reverso.net is loading. Please wait..."
 
    'Attente que la page soit actualisée et prête
    While oIE.Busy Or oIE.READYSTATE <> 4: DoEvents: Wend
 
    Set oHTML_doc = oIE.document
 
    'Webpage Loaded
    Application.StatusBar = "www.reverso.net  Loaded"
 
    Dim LstHTML_1 As String
    'Dim sCurSelect_1 As String
    Dim LstHTML_2 As String
    'Dim sCurSelect_2 As String
 
    'Stocker les innerhtml des listes déroulantes des langues
    LstHTML_1 = oHTML_doc.getElementsByTagName("ul")(0).innerhtml
    LstHTML_2 = oHTML_doc.getElementsByTagName("ul")(1).innerhtml
 
    'Supprimer les paramètres : "focus" et "selected"
    LstHTML_1 = Replace(LstHTML_1, " focus", "")
    LstHTML_1 = Replace(LstHTML_1, " selected", "")
    LstHTML_2 = Replace(LstHTML_2, " focus", "")
    LstHTML_2 = Replace(LstHTML_2, " selected", "")
 
    'Renseigner les paramètres : "focus" et "selected" pour les langues recherchées
    LstHTML_1 = Left(LstHTML_1, InStr(1, LstHTML_1, sFrom, vbTextCompare) - 15) & " selected focus" & Right(LstHTML_1, Len(LstHTML_1) - (InStr(1, LstHTML_1, sFrom, vbTextCompare) - 15))
    LstHTML_2 = Left(LstHTML_2, InStr(1, LstHTML_2, sToLang, vbTextCompare) - 15) & " selected" & Right(LstHTML_2, Len(LstHTML_2) - (InStr(1, LstHTML_2, sToLang, vbTextCompare) - 15))
 
    'Renvoyer le code HTML
    oHTML_doc.parentwindow.execscript "javascript:document.getElementsByTagName('ul')[0].innerhtml = '" & LstHTML_1 & "';"
    oHTML_doc.parentwindow.execscript "javascript:document.getElementsByTagName('ul')[1].innerhtml = '" & LstHTML_2 & "';"
Ce code a été établi après une analyse des données qui me semble les plus probantes à être modifier pour être prises en compte pour lancer la traduction.
Son objectif est d'intervenir sur les "Selected" et les "focus" devant les éléments recherchés... D'où la fonction REPLACE utilisée à gogo pour modifier les innerHTML.

Mais rien ne se passe, le code HTML de la page ne se modifie pas du tout...

Quelqu'un comprendrait-il mon problème ? Est-ce mon approche qui est mauvaise ? Quelle technique dois-je modifier pour y parvenir ?

Siouuuuuplé !!!!!

Je suis sûr que des cracks du Web pourront m'expliquer la logique d'une page, car franchement après maintes et maintes recherches, je sèche !

Merci beaucoup pour votre attention.

Je reste disponible si vous avez besoin d'éléments complémentaires pour comprendre tout ce beau brodel

Aller, sur ce... au taf

VBAdialement,
GexMan1198S