Clever-Excel-Forum

Normale Version: VBA einsteiger hilfe IE
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Schönen guten Tag,

Ich habe mit hilfe ein Makro erstellt, welches mir hilft meine Daten aus dem Web zu ziehen. Nun habe ich folgendes Problem:

Verwende ich diesen Code:


Code:
    Sub b()

    Dim IEApp As Object, all As Object
    Dim objIEDoc As Object
    Dim strURL As String
    Dim zeile As Long, spalte As Integer
    zeile = 3
    spalte = 2
    strURL = Tabelle1.Range("A1")
    Set IEApp = CreateObject("InternetExplorer.Application")
        IEApp.Visible = False
        IEApp.Navigate2 strURL
        Do: Loop Until IEApp.Busy = False
        Do: Loop Until IEApp.Busy = False
                    With IEApp.Document
                    .getElementById("searchfield").Value = Tabelle1.Range("A3").Value 'anpassen
                    .getElementById("submit_search_btn").Click
                    Do: Loop Until IEApp.Busy = False
                    End With
    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Document.ReadyState = "complete"
    For Each all In IEApp.Document.all
        If all.classname = "article_details_price2" Then
            Tabelle1.Cells(zeile, spalte) = all.innertext
        End If
    Next
    IEApp.Quit
    Set IEApp = Nothing
    MsgBox "Fertig"
    End Sub


Funktioniert das alles schon sehr gut, leider weiß ich nicht wie ich es fertig bringe bei mehrfach-Treffern einen auszuwählen. Und anschließend eine Zelle darunter den nächsten Suchbegriff auf der selben Seite zu suchen und dessen Preis auszugeben.

Wenn das nun zu kompliziert ist wäre es auch ok wenn der Code:

Code:
    Sub b()

    Dim IEApp As Object, all As Object
    Dim objIEDoc As Object
    Dim strURL As String
    Dim zeile As Long, spalte As Integer
    zeile = 3
    spalte = 2
    strURL = Tabelle1.Range("A1")
    Set IEApp = CreateObject("InternetExplorer.Application")
        IEApp.Visible = False
        IEApp.Navigate2 strURL

    Do: Loop Until IEApp.Busy = False
    Do: Loop Until IEApp.Document.ReadyState = "complete"
    For Each all In IEApp.Document.all
        If all.classname = "article_details_price2" Then
            Tabelle1.Cells(zeile, spalte) = all.innertext
            zeile = zeile + 1
        End If
    Next
    IEApp.Quit
    Set IEApp = Nothing
    MsgBox "Fertig"
    End Sub


So (?) um die eingabe des Suchfeldes gekürzt wird. In dem Fall würde ich die Url. der einzelnen Artikel untereinander schreiben und würde diese dann wieder von A1 zu A(letzte beschriebene zeile) ansprechen wollen und die dazugehörigen preise daneben schreiben wollen.

Möglichkeit eins wäre mir natürlich lieber da es für jedermann zu bedienen wäre, aber evtl zu langsam ?

Langsam mehren sich auch meine VBA kenntnisse also immer her mit den guten Ideen [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

PS: wäre es möglich sich anzeigen zu lassen wie lange das Makro noch läuft ? Habe gelesen das geht nur bei bestimmten Makros.

Herzlichen Dank im voraus