Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1524to1528
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

Elektronik Bauteile suchen

Elektronik Bauteile suchen
15.11.2016 21:57:24
stef26
Hallo Zusammen,
ich lese gerne in diesem Forum und versuche durch die Beiträge so langsam in die VBA Welt zu gelangen.
Ich habe einen interessanten Beitrag gelesen, den ich aktuell in ähnlicher Weise selbst benötige.
Ich habe in meiner Tabelle eine Liste mit Namen elektronischer Bauteile.
Ich möchte diese in einer Webseite suchen und die Suchergebnisse (Zeile) dann zurückgeben lassen.
Diesen Code habe ich gefunden, weiß aber leider nicht, wie ich das anpassen muss..
Sub SplitURLsToCells()
Dim iLastRow As Long, i As Long
Dim IEApp As Object
Dim strURL As String
Set IEApp = CreateObject("InternetExplorer.Application")
iLastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
IEApp.Visible = True
IEApp.navigate "https://www.pcb-factory.de/"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.document.readyState = "complete"
For i = 2 To iLastRow
With IEApp.document.all
.searchValue.Value = Cells(i, 1)
.doSubmit(2).Click
Do: Loop Until IEApp.document.readyState = "complete"
strURL = IEApp.LocationURL
Cells(i, 2) = Right(strURL, Len(strURL) - InStrRev(strURL, "/"))
End With
Next
Set IEApp = Nothing
End Sub
Liebe Gruesse
Stefan

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Elektronik Bauteile suchen
15.11.2016 22:53:40
CitizenX
Hi,
teste mal:

Sub SplitURLsToCells()
Dim iLastRow As Long, i As Long, f
Dim IEApp As Object
Dim strURL As String
Set IEApp = CreateObject("InternetExplorer.Application")
iLastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
'    IEApp.Visible = True
IEApp.navigate "https://www.pcb-factory.de/"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.document.readyState = "complete"
For i = 2 To iLastRow
With IEApp.document.all
.st.Value = Cells(i, 1)
.Search.Click
Do: Loop Until IEApp.document.readyState = "complete"
Set f = IEApp.document.getElementById("r1")
If Not f Is Nothing Then
Cells(i, 2) = f.innerText
Else
Cells(i, 2) = "Nicht Vorhanden"
End If
End With
Next
IEApp.Quit
Set IEApp = Nothing
End Sub

VG
Steffen
Anzeige
AW: Elektronik Bauteile suchen
15.11.2016 23:23:13
stef26
Hallo Steffen,
Volltreffer. Genau so ist das cool.
Kannst du mir sagen welche part ich anpassen müsste, möchte ich z.B. auf
http://shop.muetron.de/shop.php?page=Shop&SessID=
suchen wollen.
Ist der Code bei jeder Internetseite anders?
Könntest du mir erklären, welche Teil man wie anpasst. Da ich auf 4-5 verschiedenen Seiten suchen möchte?
Liebe Grüße
Stefan
AW: Elektronik Bauteile suchen
15.11.2016 23:55:39
CitizenX
Hi,
jede Seite ist anders aufgebaut und somit muß der Code individuell angepasst werden....
VG
Steffen
AW: Elektronik Bauteile suchen
16.11.2016 07:21:49
stef26
Hallo Steffen,
wie geht man da am besten vor?
Gibt es irgendwo Internet links die dies erklären ?
Wie ich das zurückschreiben auf verschiedene Spalten mache bekomme ich glaub ich hin.
Was ich bräuchte eine Internetseite die das erklärt wie man auf was wie zugreift.
Brauch folgende Seiten in denen gesucht werden soll:
IEApp.navigate "https://www.pcb-factory.de/"
'IEApp.navigate "http://shop.muetron.de/shop.php?page=Shop&SessID="
'IEApp.navigate "http://www.pollin.de/shop/suchergebnis.html?S_TEXT=100+Ohm&log=internal"
'IEApp.navigate "https://www.conrad.de/?gclid=CIW7ksLmq9ACFQUtGQodknMEXw&insert_kz=NA&hk=SEM&WT.srch=1&s_kwcid=AL!222!3!83253280881!b!!s!!%2Belektronik%20%2Bonline%20%2Bshop&ef_id=WCuK5wAABUu3LwvE:20161115222335:s"
'IEApp.navigate "https://www.it-wns.de/"
Liebe Grüße
Stefan
Anzeige
BSP
16.11.2016 10:59:29
CitizenX
Hi,
eine Internetseite die Dies erklährt würd es m.E nicht geben,aber hier mal ein Bsp für die Vorgehensweise:
1. Seite im Browser aufrufen (manuell)
2. Rechtsklick auf das Objeft(Suchfeld)und "Element untersuchen" auswählen
->Nun wird dir im EntwicklerModus das HTML Element in der HTML Hirarchi angezeigt
->Wenn in dem Element eine ID vergeben ist kannst du in deinem Code(wie in den Bsp von mir) direkt daruf zugreifen.
-> Wenn nicht mußt du herausfinden welches Element es in der HTML Struktur ist.
Bsp shop.muetron:
Das Suchfeld ist das 2. te "Input" Feld der Form "suche"

id="suche" name="frmSearch" action="search3.php" method= _
"GET">
0.te Element  name="SessID" value=" _
a3698aff8cd2a1c3305bf83d92ff837d" type="hidden">
1.te class="ajax_search_text" ajax_type="1"  _
autocomplete="off" id="txtSearch" name="searchstring" placeholder="Suchbegriff" type="text">
'div>
2.te value="Suche" type="submit">
Erweiterte Suche
'form>
Also bekommst du das Suchfeld mit :
Set f = IEApp.document.getElementById("suche").getElementsByTagName("input")(2)
Und so Verfährst du weiter..
VG
Steffen
Anzeige
AW: BSP
16.11.2016 23:13:34
stef26
Hallo Steffen,
ich muss kapitulieren. Ich brings nicht hin. Ich weiß nun zwar wie man bei einer Internetseite auf den Entwicklermodus kommt (wusste ich bisher nicht).
Auch für dein Beispiel dass du so schön erklärt hast, bekomme ich keine Werte.
Sub SplitURLsToCells2()
Dim iLastRow As Long, i As Long, f
Dim IEApp As Object
Dim strURL As String
Set IEApp = CreateObject("InternetExplorer.Application")
iLastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
'    IEApp.Visible = True
IEApp.navigate "http://shop.muetron.de/shop.php?page=Shop&SessID="
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.document.readyState = "complete"
For i = 2 To iLastRow
With IEApp.document.all
.searchstring.Value = Cells(i, 1) 'Name des Feldes in der der Suchbegriff  _
eingetragen wird
.txtSearch.Click 'Button zum suchen
Do: Loop Until IEApp.document.readyState = "complete"
Set f = IEApp.document.getElementById("suche").getElementsByTagName("input")(2)
If Not f Is Nothing Then
Cells(i, 2) = f.innerText
Else
Cells(i, 2) = "Nicht Vorhanden"
End If
End With
Next
IEApp.Quit
Set IEApp = Nothing
End Sub
Vielleicht könntest du mir nochmal helfen. Was mache ich falsch, dass hier keine Werte kommen.
Liegt es an dem Such Button (.txtSearch.Click)
Den kann man leider nicht anklicken so dass man mit der rechten maus auf untersuchen gehen kann...
Gruß
Stefan
Anzeige
AW: BSP
17.11.2016 06:46:26
baschti007
Hey Steffen
dort muss
.txtSearch.Value = Cells(i, 1)
.Suche.submit
hin aber das könnte man auch in meiner Bsp Datei sehen gruß Basti
AW: BSP
17.11.2016 07:15:26
stef26
Hallo Steffen,
ich muss kapitulieren. Ich brings nicht hin. Ich weiß nun zwar wie man bei einer Internetseite auf den Entwicklermodus kommt (wusste ich bisher nicht).
Auch für dein Beispiel dass du so schön erklärt hast, bekomme ich keine Werte.
Sub SplitURLsToCells2()
Dim iLastRow As Long, i As Long, f
Dim IEApp As Object
Dim strURL As String
Set IEApp = CreateObject("InternetExplorer.Application")
iLastRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row
'    IEApp.Visible = True
IEApp.navigate "http://shop.muetron.de/shop.php?page=Shop&SessID="
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.document.readyState = "complete"
For i = 2 To iLastRow
With IEApp.document.all
.searchstring.Value = Cells(i, 1) 'Name des Feldes in der der Suchbegriff  _
eingetragen wird
.txtSearch.Click 'Button zum suchen
Do: Loop Until IEApp.document.readyState = "complete"
Set f = IEApp.document.getElementById("suche").getElementsByTagName("input")(2)
If Not f Is Nothing Then
Cells(i, 2) = f.innerText
Else
Cells(i, 2) = "Nicht Vorhanden"
End If
End With
Next
IEApp.Quit
Set IEApp = Nothing
End Sub
Vielleicht könntest du mir nochmal helfen. Was mache ich falsch, dass hier keine Werte kommen.
Liegt es an dem Such Button (.txtSearch.Click)
Den kann man leider nicht anklicken so dass man mit der rechten maus auf untersuchen gehen kann...
Gruß
Stefan
Anzeige
AW: Elektronik Bauteile suchen
16.11.2016 20:36:14
Bastian
Hey Stefan ich habe mich nun das erste mal mit inetseiten mit vba beschäftigt ich hatte immer Probleme mit der Laufzeit der Internet seite bis diese aufgebaut ist deshalb seht viele spleep in dem code aber bei mir geht es ich glaube mein code ist so langsam weil man die daten nicht direkt mit einer ID auslesen kann .
Wenn du mal keine Artikel findest dann musst du etwas mit den sleep rum spielen.
Gruß Basti
https://www.herber.de/bbs/user/109492.xlsm
AW: Elektronik Bauteile suchen
17.11.2016 07:21:54
stef26
Hallo Basti,
danke für deine Hilfe. Ich werde mir das heute Abend in Ruhe mal ansehen...
DANKE
:-)
Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige