VBA Steuerung des Internetexplorers
24.10.2015 15:10:19
Robert
Bei meinem folgenden Problem benötige ich etwas Hilfe.
Für unseren Verein haben wir ein neues Programm welches rein Online funktioniert und unsere Excellisten ablöst.
Nun habe ich ca. 500 Daten zu übertragen. 100 Mitglieder und noch 400 andere Informationen.
Leider kann ich nicht an eine Datenbank direkt. Daher will ich aus meiner Excel die Daten an das Browserfenster übergeben.
Funktioniert auch soweit wenn ich es einzeln starte.
Aber damit das automatisch funktioniert muss ich jeweils prüfen, welche Seite gerade angezeigt wird.
Es sind 7 unterschiedliche Texte die in den einzelnen Maske anderslauten und ich somit die aktuelle Maske identifiziere.
Diese suche ich mit
CodeBsp 1:
stringHTML = IEApp.Document.Body.InnerHtml
Gefunden = InStr(1, Quelltext, "Text den ich suche und die Maske zu identifizieren"))
Der Rückgabewert ist da eine Zahl die ich dann auswerten könnte.
Wenn ich dann die entprechende Maske gefunden habe, soll jeweils etwas anderes ausgelöst werden.
Wenn ich zum Beispiel in der Mitgliederübersicht bin, soll die Schaltfläche "Hinzufügen" geklickt werden,
dann muss wieder mit dem CodeBsp 1 geprüft werden ob die richtige Maske nun geladen ist.
Wenn ja dann sollen die Felder gefüllt werden. Dies habe ich so gelöst
CodeBsp 2:
Sub Felderfuellen()
Dim objShell As Object
Dim IEApp As Object, win As Object, IEDoc As Object
Dim strTitel As String
strTitel = "Web-Verein - Mitglied hinzufügen"
Set objShell = CreateObject("Shell.Application")
For Each win In objShell.Windows
If InStr(1, LCase(win.FullName), "iexplore") 0 Then
If win.Document.Title = strTitel Then
Set IEApp = win
Set IEDoc = win.Document
AppActivate IEApp.Document.Title
IEApp.Document.all("form_title").Value = Cells(1, 1)
IEApp.Document.all("form_forename").Value = Cells(1, 2)
IEApp.Document.all("form_lastname").Value = Cells(1, 3)
IEApp.Document.all("form_postalcode").Value = Cells(1, 4)
IEApp.Document.all("form_city").Value = Cells(1, 5)
IEApp.Document.all("form_street").Value = Cells(1, 6)
IEApp.Document.all("form_phone").Value = Cells(1, 7)
IEApp.Document.all("form_fax").Value = Cells(1, 8)
IEApp.Document.all("form_email").Value = Cells(1, 9)
End If
End If
Next
Set objShell = Nothing
End Sub
Und das so lange bis alle Mitglieder angelegt sind.
Wie kann ich das nun in eine Schleife einbauen? Einmal eine Schleife die Zeile für Zeile also
Mitglied für Mitglied der Excel durchgeht und dann jeweils die Masken durchgeht bis die Meldung im Html
kommt "Mitglied wurde erfolgreich angelegt"?
Danke vielmals wenn Ihr helfen könntet.