En essayant d'extraire UNE valeur à partir d'une page web à l'aide de VBA dans Excel

J'ai essayé de trouver des informations pour un couple de jours, mais tous les exemples que j'ai trouvé a juste un petit morceau de code, j'en ai besoin tous =)

Ce que je veux faire est d'extraire une valeur à partir d'une page d'accueil et le mettre dans une cellule dans Excel
(et puis prendre une autre valeur à partir d'une autre page du même site et de le mettre dans la cellule d'à côté, etc, etc.)

La page est un suédois de bourse de la page, et la page que j'ai utilisé comme un test de la page est le stock pour les "Investisseurs" B" ( https://www.avanza.se/aktier/om-aktien.html/5247/investor-b )

Et la valeur qui m'intéresse c'est celui qui est appelé "Senaste" (c'est la page des informations qui l'entoure)

<li>
    <span class="XSText">Senast<br/></span>
    <span class="lastPrice SText bold"><span class="pushBox roundCorners3"    title="Senast uppdaterad: 17:29:59">248,60</span></span>
</li>

Et c'est la valeur 248,60 je suis après!

J'ai un peu de codage de l'expérience, mais pas pour VBA programmation, après avoir lu quelques forum de posts (surtout ici), j'ai essayé un peu par exemple moi-même, mais ne pouvait pas faire le travail.
Depuis que je suis tout à fait de base avec VBA, je pourrait avoir la structure de mal, alors, s'il vous plaît être de base et patient avec moi, c'était mon test, mais j'ai eu "erreur d'Exécution 429"
Composant ActiveX ne peut pas créer un objet

Je suis peut-être totalement fausse route

Private Sub CommandButton1_Click()
Dim ie As Variant
Set ie = CreateObject("InternetExplorer")
ie.navigate "https://www.avanza.se/aktier/om-aktien.html/5247/investor-b"
ie.Visible = True
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Application.Wait (Now() + TimeValue("00:00:016")) ' For internal page refresh or loading
Dim doc As Variant 'variable for document or data which need to be extracted out of webpage
Set doc = CreateObject("HTMLDocument")
Set doc = ie.document
Dim dd As Variant
dd = doc.getElementsByClassName("lastPrice SText bold")(0).innerText
MsgBox dd
End Sub

EDIT: 2014-05-12 code Actuel étant testés 17:05

sous le bouton de commande

Private Sub CommandButton1_Click()
Dim IE As Object
' Create InternetExplorer Object
Set IE = CreateObject("InternetExplorer.Application")

' You can uncoment Next line To see form results
IE.Visible = False

' Send the form data To URL As POST binary request
IE.Navigate "https://www.avanza.se/aktier/om-aktien.html/5247/investor-b"

' Statusbar
Application.StatusBar = "Loading, Please wait..."

' Wait while IE loading...
'Do While IE.Busy
'    Application.Wait DateAdd("s", 1, Now)
'Loop
'this should go from ready-busy-ready
IEWait IE

Application.StatusBar = "Searching for value. Please wait..."
' Dim Document As HTMLDocument
' Set Document = IE.Document
Dim dd As Variant
dd = IE.Document.getElementsByClassName("lastPrice SText bold")(0).innerText

MsgBox dd

' Show IE
IE.Visible = True

' Clean up
Set IE = Nothing
Set objElement = Nothing
Set objCollection = Nothing

Application.StatusBar = ""


End Sub

Et dans module1

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Function IEWait(p_ieExp As InternetExplorer)

'this should go from ready-busy-ready
Dim initialReadyState As Integer
initialReadyState = p_ieExp.ReadyState

'wait 250 ms until it's done
Do While p_ieExp.Busy Or p_ieExp.ReadyState <> READYSTATE_COMPLETE
    Sleep 250
Loop

End Function

Comme dit plus tôt, je ne sais pas si j'ai eu la bonne structure avec ce dernier add-in, et non à l'expiration de ce genre de code, j'ai peur.

En Ce Qui Concerne Meilleur

Arrêter la modification 2014-05-12 17:08

Voici un lien de téléchargement pour le document de test, j'ai été à l'aide. Il a deux feuilles, chaque feuille utilise une méthode différente.
Si je l'ajoute au-dessus de la ligne Private Sub CommandButton1_Click() je vais avoir le même comportement qu'avant Si je l'ai mis juste sous la ligne je vais vous obtenez un message d'erreur disant: "on Attend la fin des sous", de deviner la fonction ne peut pas être à l'intérieur de la command_button sous je ne sais pas si c'est hors sujet ou pas, mais certains ont avancé googler, ce que vous en pensez ? Meilleures Salutations social.msdn.microsoft.com/Forums/office/en-US/...
J'ai eu exactement le même message d'erreur décrite ci-dessus dans les deux cas, Vraiment merci pour le temps passé sur cette question. Il semble comme une excel 2013 problème, alternative, mon ordinateur problème. Aucune idée de la façon de continuer à chercher une réponse à la question ?
Ouais avec votre fichier que je voulais dire (avec les deux cas) Donc c'est à l'ordinateur/paramètres Donc je me demande comment je faire fonctionner votre code avec ma machine, a obtenu IE 9.0.8112.16421 mise à Jour de la version 9.0.26 des idées ?
Réussi à le tester dans excel 2010, la même erreur, depuis que je suis à l'étranger à l'instant, je n'ai pas la possibilité de le tester sur une autre machine, je vais essayer ce week-end, des idées pourquoi ce message d'erreur apparaissent ? J'exécute windows 7 Entreprise 64 bits

OriginalL'auteur Rycket | 2014-05-11