Sélection d'une seconde page HTML
Bonjour,
Je pose mon problème, n'ayant pas trouvé de poste, mais bon ne sachant trop l'expliqué, j'ai peut être pas utilisé les bons Keyword.
J'ai suivi le tutoriel sur l'interaction VBA/HTML. Tutoriel vraiment très bien fait.
J'arrive cependant à un dilemme :
Je dois me connecte rà un site, m'identifier, puis naviguer dedans.
Cependant, lors d'une des phases de naviguation, la page suivante m'ouvrer également un second onglet.
Je souhaite atteindre ce second onglet pour en faire "mapagehtml", en sachant que je suis sous session authentifié, donc pas possible de faire un IE.naviguate
J'ai donc eu la bonne idée de faire un "IE.quit", ce qui ferme bien la fenêtre en trop. Cependant j'ignore comment reprendre cette page dans mon code VBA, j'ai pour le moment une erreur d'automotion normale, vu que la page visée au départ est fermée.
le code :
Code:
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 55
|
Sub RechercheGoogle()
Dim MaCellule As String
Dim IE As InternetExplorer
Dim maPageHtml As HTMLDocument
Dim Helem As IHTMLElementCollection
Dim pagesuivante As String
Dim plageref As Range
Dim NBL As Long
Dim maPageHtml2 As HTMLDocument
Dim InputGoogleBouton As HTMLFormElement
Dim Tabdate As Range
Dim valeurrechercher As Variant
Dim monElement As IHTMLElement
Set Tabdate = Worksheets("Prix").Range("A1:AA1")
Set plageref = Worksheets("Prix").[A1].CurrentRegion
NBL = plageref.Rows.Count
'Call listerFenetres_IE_Ouvertes 'ferme toute les fenetres internet avant la manip.
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "" adresse du site, site que je ne peux citer ici pour des raisons pro.
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
IE.Visible = True
Set maPageHtml = IE.Document
Set InputGoogleBouton = maPageHtml.all("SubmitCreds")
InputGoogleBouton.Click
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
IE.Visible = True
Sleep (10000)
Set maPageHtml = IE.Document
Set monElement = maPageHtml.Links(32)
monElement.Click
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
IE.Visible = True
Sleep (10000)
IE.Quit
'l'erreur arrive ici, puisque j'ai fermer mon interface
pagesuivante = maPageHtml.Links(1)
....blabla |
Si vous avez une solution pour capturer le nouvel onglet pour que je puisse le mettre sous IE ensuite, je pense que ça fonctionnerais.
Sinon peut être que je m'y prends à l'envers dans ma conception.
Cordialement