Oprettet ons. d. 25. juli 2012 kl. 16:44:49

contici
contici (10.430 point. Point ude: 60)

Styring af Internet Explorer fra VBA virker ikke hver gang

Hej,

Jeg har lavet en meget enkelt VBA makro som skal åbne IE, gå ind på en hjemmeside, og logge ind. Men det går nogle gange galt inden den får skrevet brugernavnet. Jeg mistænker det er fordi den prøver at sætte brugernavnet ind i feltet, inden siden er færdig med at loade. Det underlige er bare at jeg har sat en "Doevents" løkke på:

Koden er følgende:

Sub test()

Dim ie As Object
Set ie = CreateObject("internetexplorer.application")

ie.Visible = True

ie.navigate "http://tvangsauktioner.dk/ (...)

While ie.busy
    DoEvents
Wend

ie.document.getElementById("ctl00$ctl00$cphBody$cph$UsernameTextBox").Value = "TEST"

end sub

Håber nogen kan hjælpe, da det er lidt mystisk.

Skrevet ons. d. 25. juli 2012 kl. 17:32:15| #1

jokkejensen
jokkejensen (40.139 point)
Mon ikke det skyldes sikkerhed, ellers ville jeg da passe på med at køre sådanne.

/J

Skrevet ons. d. 25. juli 2012 kl. 22:13:59| #2

contici
contici (10.430 point)
Øhh jeg er ikke helt med hvad du mener? Det virker jo nogen gange. Ca to ud af tre gange.

Skrevet tor. d. 26. juli 2012 kl. 13:33:56| #3

jokkejensen
jokkejensen (40.139 point)
Så skyldes det nok at et ID ikke må bestå af $ tegn, leder du ikke efter :

ctl00_ctl00_cphBody_cph_UsernameTextBox

Eller jeg kan aldig forstå det har lykkedes dig at finde et element vha getelementbyid og dets navn.

/J

Skrevet tor. d. 26. juli 2012 kl. 13:34:55| #4

jokkejensen
jokkejensen (40.139 point)
og i stedet for "doEvents" prøv:

Application.Wait DateAdd("s", 1, Now)

/J

Skrevet tor. d. 26. juli 2012 kl. 15:06:17| #5

contici
contici (10.430 point)
Jeg fandt ud af fra anden vej, at det er Doevents der åbenbart ikke altid virker som det skal.

Så har sat en wait på som du skriver. Bare ikke helt så fikst!

Omend jeg havde fundet svaret inden du svarede, så vil jeg gerne give point hvis du lægger svar!

Skrevet fre. d. 27. juli 2012 kl. 08:18:48| #6

jokkejensen
jokkejensen (40.139 point)
Jeg tror nu stadig ikke helt på at

"ie.document.getElementById("ctl00$ctl00$cphBody$cph$UsernameTextBox").Value = "TEST""

Vil ramme et ID der hedder
ctl00_ctl00_cphBody_cph_UsernameTextBox

Men så længe det virker :)

Tak for points.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Pivottabel

Oprettet den 25. maj 2013 kl. 21.20
dlg giver 200 point for svar | Giv et svar »

Hjælp til VBA kode

Oprettet den 25. maj 2013 kl. 21.20
boro23 giver 30 point for svar | Giv et svar »

trække data fra 2 regneark sammen til 1

Oprettet den 25. maj 2013 kl. 17.50
dlg giver 200 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Fem smarte funktioner i din Mac som du sikkert ikke kender

Her har du fem muligheder for at tweake din Mac på en fed måde.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Ny opfindelse: Oplad din mobil på 20 sekunder

Måske er det snart slut med at lade mobilen op hver aften. Med ny opfindelse kan telefonen få fuld energi på sølle 20 sekunder.


Nyheder fra Computerworld

Teaser billede

Galleri: De 10 vildeste datacentre i verden

I en gammel kirke, i et oppusteligt telt, på nedlagte militæranlæg eller midt i ørkenen. Der er ingen grænser for, hvor man kan banke et datacenter op. Her er de 10 sejeste anlæg i verden. I...


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger