Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1308to1312
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA HTML Login folgende Seite auslesen

VBA HTML Login folgende Seite auslesen
14.04.2013 15:16:16
Mr.
Hallo alle zusammen,
an sich habe ich zwei fragen:
1. ich möchte gerne per VBA (Excel) auf die Seite
https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl
zugreifen. Dort soll das aktuelle Datum eingegeben werden und dann die Suchanfrage abgesendet werden.
Die Suchergebnisse würde ich dann gerne in eine Excel Tabelle schreiben lassen (Die HTML Datei dann in einen String zu überführen um sie dann auszulesen soll hier nicht erörtert werden)
Jedoch scheitert es schon an der Eingabe des Datums. mit dem Befehl getelementby...
Ich bekomme den Fehler, dass das Objekt nicht vorhanden ist.
Kann mir jmd sagen wieso?
2. Frage wäre:
Wie kann ich auf eine neu-geöffnete Seite zugreiffen.
Also ganz einfach erklärt, nach einem Login möchte auf die neue Seite zugreifen(die daraus geöffnet wurde).
Diese wird mit einer zufälligen URL generiert. Ist es möglich auf dieser Seite nun per VBA weiter zuarbeiten?
Schon mal vielen Dank für eure Anregungen.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA HTML Login folgende Seite auslesen
14.04.2013 15:59:03
Luschi
Hallo Mr. B,
dann zeige doch mal, waß Du shon an Vba-Code zusammen hast; dann öffne ich auch meine Schatztruhe.
Gruß von Luschi
aus klein-Paris

AW: VBA HTML Login folgende Seite auslesen
14.04.2013 16:56:22
Mr.
Aber gerne:
Die Anmeldung funktioniert sehr gut. Danach wird aber eine neue Seite mit einer unbekannten URL
geöffnet. Dort würde ich dann sehr gerne weiter arbeiten (also weitere Formulare ausfüllen etc.)
Sub anmelden_bei_LexNex()
Dim IEApp As Object
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
IEApp.Navigate "https://www.lexisnexis.com/de/business/"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
With IEApp.Document
' bei LexisNexis anmelden
Do: Loop Until .ReadyState = "complete"
.getelementbyid("webId").Value = "Anmeldung" 'anpassen
.getelementbyid("password").Value = "passwort" 'anpassen
SendKeys "{ENTER}", True
End With
Set IEApp = Nothing
End Sub
Auf die Seite
https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl
habe ich ebenfalls wie oben beschrieben versucht zu zugreifen.
Der HTML Code für die Formulare ist:

Ich habe versucht mit getelementsbyname darauf zu zugreifen. Es kam aber jedes mal die Fehlermeldung
das es dieses Objekt nicht gibt.
Auf den Button zum Suche starten konnte ich ebenfalls nicht zugreifen.
Hat das vielleicht was mit der Art von Website zu tun?

Anzeige
AW: VBA HTML Login folgende Seite auslesen
14.04.2013 18:09:02
Luschi
Hallo Mr. B,
beim Anmeldeformular ist es immer relativ einfach mit 'GetElementById', doch in einem größeren _ Eingabeformular muß man behutsamer vorgegen; und so klappt das bei mir:

Sub Daten_in_LexNex_Formular()
Dim IEApp As Object
Dim ding As Object
Dim IEDoc As Object
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
'IEApp.Navigate "https://www.lexisnexis.com/de/business/"
IEApp.Navigate "https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
With IEApp.Document
Do: Loop Until .ReadyState = "complete"
Set IEDoc = IEApp.Document
On Error Resume Next
For Each ding In IEDoc.all
If ding.Type = "text" And ding.Name = "Datum1" Then
If Err = 0 Then
'Datum1 hier anpassen
ding.Value = Format(Now() - 1, "dd.MM.yyyy")
On Error GoTo 0
Err.Clear
Exit For
Else
Err.Clear
End If
End If
Next
On Error Resume Next
For Each ding In IEDoc.all
If ding.Type = "text" And ding.Name = "Datum2" Then
If Err = 0 Then
'Datum1 hier anpassen
ding.Value = Format(Now(), "dd.MM.yyyy")
On Error GoTo 0
Err.Clear
Exit For
Else
Err.Clear
End If
End If
Next
End With
Set ding = Nothing
Set IEDoc = Nothing
Set IEApp = Nothing
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: VBA HTML Login folgende Seite auslesen
14.04.2013 22:07:18
Mr.
Super Sache.
Wieder was gelernt.
Das man so eine Seite "durchsuchen" wusste ich noch nicht.
Danke dafür.
Dann steht nur noch meine zweite Frage im Raum, wie man auf eine neu geöffnete Seite mit zufälliger URL zugreifen kann.
Also nach einem Login auf der nächsten Seite weiter arbeiten kann, ohne das man die URL kennt.
Gibt es eine Möglichkeit diese aufzulesen?
Den Login habe ich wie oben beschrieben durchgeführt. Danach öffnet sich eine neue Seite die nun ausgelesen werden möchte....

AW: VBA HTML Login folgende Seite auslesen
15.04.2013 20:04:42
Luschi
Hallo Mr. B,
das Ermitteln der neu hinzugekommenen Inet-Url kann man so prüfen:

Sub neueTempInetUrl()
Dim IEApp As Object
Dim oWindowList As Object
Dim oWindow As Object
Dim oDict As Object
Dim sUrl As String, ok As Boolean
Set oDict = CreateObject("Scripting.Dictionary")
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
IEApp.Navigate "https://www.insolvenzbekanntmachungen.de/cgi-bin/bl_suche.pl"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
'alle Windowsfenster durchlaufen
Set oWindowList = CreateObject("Shell.Application").Windows
If oWindowList.Count > 0 Then
For Each oWindow In oWindowList
If UCase(Right(oWindow.FullName, 12)) = "IEXPLORE.EXE" Then
sUrl = oWindow.LocationURL
If Not oDict.Exists(sUrl) Then
'jede Url des IE in das Dictionary schreiben
oDict.Add sUrl, ""
End If
End If
Next
End If
'neues IE-Fenster mit temporärer Url öffnet sich
IEApp.Navigate "https://www.herber.de/forum/"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
'alle Inet-Seiten noch einmal durchlaufen
ok = False
Set oWindowList = CreateObject("Shell.Application").Windows
If oWindowList.Count > 0 Then
For Each oWindow In oWindowList
If UCase(Right(oWindow.FullName, 12)) = "IEXPLORE.EXE" Then
sUrl = oWindow.LocationURL
If Not oDict.Exists(sUrl) Then
ok = True
Exit For
End If
End If
Next
End If
If ok Then
'in sUrl steht die neu geöffnete Inet-Seite
MsgBox "neu hinzugekommene Url: " & sUrl
End If
oDict.RemoveAll
Set oDict = Nothing
Set oWindowList = Nothing
Set oWindow = Nothing
Set IEApp = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige