Form invullen in IE vanuit Excel

Status
Niet open voor verdere reacties.

linda c h

Gebruiker
Lid geworden
8 sep 2008
Berichten
6
hoi,

ik zit met het volgende probleem: ik wil vanuit Excel met een Macro het formulier op deze pagina invullen. Het eerste veld moet op SHOT (W) komen te staan. Op de één of andere manier lukt mij dit niet. Ik heb het geprobeerd met

IeDoc1.All("select1").Value = "SHOT (W) "
Dit werkt niet. Volgens mij zit 'm het probleem in de spaties volgend na SHOT (W) in de value. Hoe kan ik dit oplossen? Is er een manier om toch SHOT(W) te selecteren bv door alleen de beginletters in te geven of zo?

Wie kent er een oplossing?

groet Linda
 
Ik denk dat je het probleem anders moet aanpakken. De web pagina is gebaseerd op een database. Die moet je vullen vanuit Excel. Dat is veel eenvoudiger dan wat je nu probeert.


HTH:D
 
hoi,

ik ben redelijk nieuw in deze wereld. Hoe kan ik een database vullen vanuit Excel? Kan dat ook als ik geen idee heb hoe die database is opgebouwd?

Ik heb het trouwens inmiddels wel klaar om de velden in te vullen, maar nu loop ik vast dat ik de tabel die vervolgens verschijnt nog naar Excel moet krijgen. Misschien maak ik het inderdaad wel onnodig lastig zo, ik sta open voor alle suggesties,

groet Linda


Code:
Sub TabelOverbrengen()

Dim ie As InternetExplorer
Dim d As HTMLDocument
Dim t As HTMLTable
Dim r As HTMLTableCell
Dim e As HTMLObjectElement

Set ie = New InternetExplorer
URL = "http://www.nttbgelre.nl/index.php?option=com_content&task=view&id=18&Itemid=65"
ie.Visible = True
ie.Navigate URL

Do While ie.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop

Set d = ie.Document
d.All.Item("select1").selectedIndex = "0"
d.All("select2").Value = "ALLES"
d.All("submit").Click

'hier moet dus iets komen wat de tabel naar Excel brengt

ie.Quit
Set ie = Nothing

End Sub
 
?

Het is me niet duidelijk wat je nu precies wilt.
Welke database gebruik je?

Vanuit iedere willekeurige database kan je een excel spreadsheet vullen.
Ik begrijp niet waarom je die web pagina wilt gebruiken om informatie vanaf te halen.
 
probleem met andere versie Excel of Vista?

hoi,

de site waar ik de data vanaf wil halen is van de regionale afdeling van de tafeltennisbond. Ik wil de uitslagen daarvandaan overnemen om op onze eiegen site te zetten in ons eigen format.
Inmiddels is het me gelukt dit op m'n eigen computer gedaan te krijgen, maar op een andere computer lukt het niet (en daar moet het uiteindelijk vanaf gedaan worden). Ik gebruik zelf Windows XP met Excel 2003. De andere computer draait op Vista met Excel 2007. Ik weet nu niet of het probleem aan mijn script ligt, aan een andere versie van Excel of aan Windows Vista.
Ik heb al gevonden dat Sendkeys niet werkt met Vista, maar daar maak ik geen gebruik van. Zijn er nog andere problemen met Vista?
Het script loopt vast bij Set Rij = Coltables(9).getElementsByTagName("TR"), ik krijg daar een error 70 No permission. Waar zou dat aan kunnen liggen?

Sub Standen_senioren()

Code:
'OPHALEN UITSLAGEN VAN SITE GELRE

Dim IE As SHDocVw.InternetExplorer
Set IE = New SHDocVw.InternetExplorer
Dim IE2 As SHDocVw.InternetExplorer
Set IE2 = New SHDocVw.InternetExplorer
Dim IE3 As SHDocVw.InternetExplorer
Set IE3 = New SHDocVw.InternetExplorer
Dim varTables, varTable
Dim varRows, varRow
Dim varCells, varCell
Dim lngRow As Long, lngColumn As Long
Dim txt As String
Dim k As Long
Dim m As Long
Dim l As Long

Sheets("links").Select
Range("a1").Select

URL = "http://www.nttbgelre.nl/"
IE.Visible = True
IE.Navigate URL

Do While IE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop

Set d = IE.Document

For k = 0 To d.Links.Length - 1
    'write the linking url to a cell
    Cells(k + 1, 1).Value = d.Links(k).href
    Cells(k + 1, 2).Value = d.Links(k).innerText
Next k
Range("B1").Select
Cells.Find(What:="senioren", After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
URL2 = ActiveCell.Offset(0, -1).Value

IE2.Navigate URL2
Do While IE2.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop

IE2.Visible = True
Set d2 = IE2.Document

Sheets("links").Select
Range("A1").Select
For m = 0 To d2.Links.Length - 1
    'write the linking url to a cell
    Cells(m + 1, 1).Value = d2.Links(m).href
    Cells(m + 1, 2).Value = d2.Links(m).innerText
Next m
Range("B1").Select
Cells.Find(What:="standen ", After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate

URL3 = ActiveCell.Offset(0, -1).Value
IE3.Navigate URL3
Sheets("alle standen senioren").Select
Range("A1").Select
Do While IE3.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop

IE3.Visible = True
Set d3 = IE3.Document

d3.all.Item("select1").selectedIndex = "51"
d3.all("submit").Click

Do While IE3.Busy:
DoEvents:
Loop

Dim Coltables As Object
Dim Rij As Object
Dim Cell As Object
Dim Waarde As String
Set Coltables = d3.getElementsByTagName("TABLE")
Dim i As Long
Dim j As Long
Dim i2 As Long

Set Rij = Coltables(9).getElementsByTagName("TR")
i2 = 1
    For i = 0 To Rij.Length - 1
       
        Set Cell = Rij(i).getElementsByTagName("TD")

        For j = 0 To Cell.Length - 1
        Waarde = Cell(j).innerText
        ActiveCell.Value = Waarde
        ActiveCell.Offset(0, 1).Select
        Next j
i2 = i2 + 1
Range("A" & i2).Select
Next i

IE.Quit
Set IE = Nothing
IE2.Quit
Set IE2 = Nothing
IE3.Quit
Set IE3 = Nothing
 
Hoi Linda

Welke referenties moet ik allemaal leggen om jouw code te kunnen uitvoeren?

Ik heb ook Windows XP, Office 2003.

Wigi
 
hoi,

ik weet niet precies wat je bedoelt met refernties, maar ik heb het Excel bestand bijgevoegd met het deel van de macro waarmee het misgaat. De bedoeling is dat er naar de site van gelre gegaan wordt, er daar twee keer doorgelinkt wordt naar de pagina waarop de standen staan (de link veranderd wekelijks). Vervolgens moet er shot (w) (id=51) worden geselecteerd en de standen overgebracht naar de Excel sheet "alle standen senioren".

groet Linda
 

Bijlagen

Linda

Ik krijg de macro ook werkend, de vorige niet.

Ik krijg dit als output. Zie bijlage.

Vista en Excel 2007 heb ik niet dus dat kan ik niet testen.

Wigi
 

Bijlagen

Vista of Excel 2007?

Hallo Wigi,

fijn dat je het even hebt geprobeerd. Ik ben blij dat het bij jou ook werkt.

Misschien dat iemand anders wel Excel 2007 of Vista heeft en het ook even wil proberen?

groet Linda
 
Ik heb de code wat vereenvoudigd. Bij mij geeft het het juiste resultaat.
Als bij jou niet, geef dan aan in welke regel.

Code:
Sub standen()
  Dim IE As SHDocVw.InternetExplorer
    
  Set IE = New SHDocVw.InternetExplorer
  IE.Visible = True
  IE.Navigate "http://www.nttbgelre.nl/index.php?option=com_content&task=view&id=19&Itemid=65"
    
  Do While IE.ReadyState <> READYSTATE_COMPLETE
    DoEvents
  Loop
    
  Set d = IE.Document
  d.all("select1").selectedIndex = "51"
  d.all("submit").Click
    
  Do While IE.Busy
    DoEvents
  Loop
    
  Set Tabel = d.getelementsbytagname("TABLE")
  Set Rij = Tabel(9).getelementsbytagname("TR")
  For i = 0 To Rij.Length - 1
    Set Cel = Rij(i).getelementsbytagname("TD")
    For j = 0 To Cel.Length - 1
      Cells(i + 1, j + 1) = Cel(j).innertext
    Next
  Next
    
  IE.Quit
  Set IE = Nothing
End Sub
 
hoi,

dit werkt bij mij prima in XP, Excel 2003. Vista of Excel 2007 kan ik even niet checken.
Het eerste deel van de code kan ik niet weglaten omdat de link waar de standen opstaan wekelijks wijzigt in het competitieseizoen. Helaas dus geen directe link,

groet Linda
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan