25.08.2015, 18:11
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:
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:
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
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