-1
votes

Sélectionnez dans la liste déroulante dans la page Internet

Ä ± am Nouveau VBA et ici. Je travaille sur les stocks et ± Besoin de votre aide. Donc, d'abord que vous pouvez le voir sur Tittle, Ä ® veulent choisir une liste automatiquement dans la liste déroulante ce que j'écris sur mon Excel. Donc, ± Besoin d'informations d'amortissement à partir de ce site Web SITE WEB dans" MalÄ ° TyLolar "Amortissement de la page en Turcs est amortman et c'est la fin de la page.Les cods Ä ± écriture travaillent à mi-chemin Ä ± peut aller juste "mali tablolaire" et Ä ± ne peut pas choisir la date à partir de la liste Down. XXX

DIM IE comme neuf InternetExExplorer IE.Visible = vrai IE.Navigate (" https: //www.isyatirim.com.tr/tr-tr/analiz/hisse/sayfalar/sirket-karti.aspx?hisse= "& sirkeismi) xxx

Image de code HTML Mon lien Excel

in epitome, je vais écrire à A2 Cellule et cette macro prendront des informations d'amortissement avec une date correcte. Désolé pour mon mauvais anglais. J'espère que tu me comprends Merci d'aide


0 commentaires

3 Réponses :


1
votes

Vous pouvez éviter d'ouvrir un navigateur et d'utiliser une méthode plus rapide. Ces pages construisent une querystring qu'il utilise dans Demande XHR pour mettre à jour les valeurs de la table. La réponse est JSON que vous pouvez analyser. Par exemple, avec les chutes de gauche et droite définies comme suit, vous pouvez afficher le XHR de l'onglet Réseau

 Entrez la description de l'image ici

Exemple des paramètres de chaîne de requête:

 entrer la description de l'image ici

La liste déroulante gauche génère:

https://www.isyatirim.com. tr / mises en page / 15 / isyatim.website / commune / data.aspx / malitabloshorttable? CompanyCode = EGEEN & Exchange = Essayez et année1 = 2018 & Période1 = 6 & = 1547055336791

Le droit génère :

https://www.isyatirim.com.tr/ mises en page / 15 / Isyatim.WebSite / Common / Comman / Data.aspx / malitabloshortable? CompanyCode = EGEEN & Exchange = Essayez et année1 = 2018 & Période1 = 3 & = 1547055336792

Notez que la devise est définie par ( Mn $ contre mn tl ):

Exchange: USD ou Exchange = Essayez

Utilisation JSONCONVERTER.BAS pour analyser le JSON et ajouter les .bas Au projet ainsi que référence via VBE> Outils> Références> Microsoft Scripting Runtime , vous pouvez analyser les valeurs du JSON. Une référence à la bibliothèque d'objets Microsoft HTML est également requise.

E.g. Réponse JSON pour la première URL


VBA: xxx


sortie:


5 commentaires

Mon ami merci pour votre commentaire, mais j'ai apprenant que VBA, quelques jours seulement et votre commentaire est si difficile de comprendre pour moi :( Donc, je devrais apprendre la langue VBA-JSON


Oui. Mais si vous avez plus tard des questions spécifiques sur le code, veuillez demander.


Oui. Comme je montrais ci-dessus. Il est écrit dans VBA. Cela nécessite un peu de compréhension de XMLHTTP et JSON. Dans JSON [] dénote une collection, vous pour chaque sur et {} est un dictionnaire que vous bouclez les clés de.


Je pense avoir utilisé ce même analyseur JSON avant: d. Toujours, analysant Json dans VBA n'est pas une tâche amusante


@ K.dᴀᴠɪs c'est comme ça que je ressens pour Json et Python à l'heure actuelle. Je pense que j'ai dû manquer un tour quelque part.



0
votes

Ä ± l'a fait avec `

p>

Set HTMLdoc = ie.document
    Set evtChange = HTMLdoc.createEvent("HTMLEvents")
    evtChange.initEvent "change", True, False
    Set selectElement = HTMLdoc.getElementById("ddlMaliTabloDonem1")
     selectElement.Value = Range("B2")
     selectElement.dispatchEvent evtChange`


0 commentaires

0
votes

Ça fonctionne

p>

For i = 0 To ie.document.getElementsByTagName("td").Length - 1
If ie.document.getElementsByTagName("td")(i).innerText = "Amortisman Giderleri" Then
result = ie.document.getElementsByTagName("td")(i + 1).innerText
Range("B11").Value = result
End If
Next i


1 commentaires

Cela semble être une réponse à une nouvelle question plutôt qu'une réponse à votre question postée existante.