Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Web-Formular ausfüllen, abschicken, auswerten

Web-Formular ausfüllen, abschicken, auswerten
Reinhard
Hallo Wissende,
wenn ich manuell die Webseite: http://www.getlatlon.com mit dem IE aufrufe, so sehe ich im Quellcode u.a. dieses:
var geocodeForm = document.getElementById('geocodeForm');
geocodeForm.onsubmit = function() {
geocode(document.getElementById('geocodeInput').value);
return false;
Daraus folgere ich ohne jedede Html-Kenntnisse, es gibt da ein Textfeld namens "geocodeInput", das müßte ich "nur" mit Vba ausfüllen und dann "Submit" o.ä. an die Seite senden.
Das geht leider nicht so, wenn ich die Seite mit Vba aufrufe, siehe nachstehenden Code, so kommt eine Seite mit völlig anderem Quellcode :-(
(falls ihr so nett seid zu testen, ich glaub anzupassen ist nur der Pfad bei C:\test\htmltext.txt)
Wie also komme ich mit Code auf die manuell aufgerufene Seite? Endziel ist die Lat/Lon-Werte auszulesen.
Danke ^ Gruß
Reinhard
Option Explicit
Sub Test()
Dim Z
Close
Open "C:\test\htmltext.txt" For Output As #1
Print #1, GetInnerX("http://www.getlatlon.com", "HTML")
Close 1
Z = Shell("notepad.exe C:\test\htmltext.txt", vbMaximizedFocus)
End Sub
Function GetInnerX(strURL As String, Optional strWhat As String = "HTML") As String
Dim objIE As Object, objDoc As Object
Dim strMldg As String
GetInnerX = ""
On Error GoTo ErrorHandler 'evtl. Fehler (auch serverseitig) abfangen
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate strURL
Do While objIE.Busy
Loop
Set objDoc = objIE.Document
Do While objDoc.readyState  "complete"
Loop
Select Case UCase(strWhat)
Case "HTML"
GetInnerX = objDoc.Body.InnerHTML
Case Else
GetInnerX = objDoc.Body.InnerText
End Select
'objIE.Quit
Exit Function
ErrorHandler:
If Err.Number  0 Then
strMldg = "Fehler 0x" & Hex(Str(Err.Number)) & " wurde ausgelöst von " _
& Err.Source & Chr(10) & Err.Description
MsgBox strMldg, vbCritical, "Fehler beim Zugriff auf WWW via InternetExplorer", Err.HelpFile, _
Err.HelpContext
Err.Clear
End If
End Function

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Web-Formular ausfüllen, abschicken, auswerten
29.12.2010 20:31:28
Anton
Hallo Reinhard,
probier sowas:
Code:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)      
Sub b()
  Dim IEApp As Object  
  Dim IEDocument As Object    
  Set IEApp = CreateObject("InternetExplorer.Application")  
  IEApp.Visible = False
  IEApp.Navigate "http://www.getlatlon.com/"
  Do: Loop Until IEApp.Busy = False    
  Do: Loop Until IEApp.Busy = False    
  Set IEDocument = IEApp.Document  
  Do: Loop Until IEDocument.ReadyState = "complete"    
  IEDocument.getElementById("geocodeInput").Value = "detmold"  
  IEDocument.getElementById("geocodeForm").onsubmit  
  Sleep 500
  Do: Loop Until IEApp.Document.ReadyState = "complete"    
  MsgBox "Latitude, Longitude:" & vbCr & IEApp.Document.getElementById("latlon").innertext  
  IEApp.Quit
  Set IEDocument = Nothing  
  Set IEApp = Nothing  
End Sub  


mfg Anton
Anzeige
klappt in Excel aber nicht im Editor
29.12.2010 22:11:13
Reinhard
Hallo Anton,
aber der Betreff spielt keine Rolle für mich, ich bedanke mich.
Mit F5 im Editor bleibt der Code hängen solange bis man die linke Maustaste drückt.
Über eine Formular-Schaltfläche aufgerufen klappt es ja sehr gut.
Insofern ist ja mein Problem gelöst.
Natürlich bin ich grundsätzlich daran interessiert wie man das ändern kann. Mir fällt da nur EnableEvents ein, weiß aber gar nicht wo ich das im Code einbauen soll. F8 brachte mir keine Erkenntnisse, da ängt der Code nicht.
Gruß
Reinhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige