Microsoft Excel

Herbers Excel/VBA-Archiv

Excel und Html | Herbers Excel-Forum


Betrifft: Excel und Html von: Uwe Hladik
Geschrieben am: 07.01.2010 12:07:03

Guten Tag an Alle, und nachträglich ein frohes neues Jahr!!!!!

mitte letzten Jahres hatte mir der Code von Anton sehr geholfen Daten von Excel nach einem Html zu übertragen.

Leider haben die Betreiber ihre Seite überarbeitet und der tolle Code von Anton funktioniert leider nicht mehr.

Sub VersAbfr() 
  Dim IEApp As Object   
  Dim myUrl As String   
  myUrl = "https://services.gdv-dl.de/zawebrequest/kennzeichensuche.aspx"
  Set IEApp = CreateObject("InternetExplorer.Application")   
  IEApp.Navigate myUrl
  IEApp.Visible = True 
  Do: Loop Until IEApp.Busy = False    
  Do: Loop Until IEApp.Busy = False    
  With IEApp.Document  
    Do: Loop Until .ReadyState = "complete"    
   'Angaben Anfrager
    .getelementbyid("txt_Injured_Name").Value = "Name"  'Worksheets("Tabelle1").Range("A1"). _
Text
    .getelementbyid("txt_Injured_Street").Value = "Strasse" 
    .getelementbyid("txt_Injured_Zip_Code_City").Value = "PLZ" 
    .getelementbyid("txt_Injured_City").Value = "Ort"  
    .getelementbyid("txt_Injured_Telephone_No").Value = "Telefon" 
    .getelementbyid("txt_Injured_Fax_No").Value = "Fax" 
    .getelementbyid("txt_Injured_E_Mail").Value = "E-Mail" 
    .getelementbyid("txt_Injured_Registration_No").Value = "Amtl. Kennzeichen" 
    .getelementbyid("txt_Injured_Reference").Value = "Ihr Zeichen" 
   'Angaben Schadenfall
    .getelementbyid("txt_Owner_Registration_No").Value = "Amtl. Kennzeichen des Unfallgegners"
    .getelementbyid("txt_Accident_Date").Value = "Schadentag"
    .getelementbyid("txt_Owner_Name").Value = "Name des Halters"
    .getelementbyid("txt_Owner_Street").Value = "Strasse des Halters"
    .getelementbyid("txt_Owner_Zip_Code_City").Value = "PLZ"
    .getelementbyid("txt_Owner_City").Value = "Ort des Halters" 
   'Anfrage starten
    '.getelementbyid("btn_Submit").Click 
  End With  
  Set IEApp = Nothing  
End Sub
... meinem laienhaften Verständnis nach liegt es an dem ".getelementbyid"
hab da jetzt versucht es zu ändern, hat aber bisher nicht funktioniert.

Hoffe mir kann da nochmal einer unter die Arme greifen!
Mit bestem Dank im Voraus.

Uwe

  

Betrifft: teste mal von: Anton
Geschrieben am: 07.01.2010 12:32:18

Hallo Uwe,

ändere myUrl = "https://services.gdv-dl.de/zawebrequest/kennzeichensuche.aspx"
durch diese: myUrl = "https://services.gdv-dl.de/GDVDL_Portal/ZAWebRequest/Kennzeichensuche.aspx"

mfg Anton


  

Betrifft: AW: bestens!!!! von: Uwe Hladik
Geschrieben am: 07.01.2010 12:44:48

Guten Tag Anton,

da muß ich mich ja zum zweiten mal sehr herzlich bedanken!!!!!

das war es genau!!!!

Ist mir aber nicht aufgefallen weil er die Seite öffnete aber nichts eintrug.

Nochmals Dank!!!!

uwe


  

Betrifft: @Anton von: Uwe Hladik
Geschrieben am: 07.01.2010 13:03:18

darf ich Dich nochmal mit einem ähnlichen Fall bemühen.

Hier hab ich das Problem, dass ich nicht weiß wie man das nächste Listenfeld anspricht oder besser gesagt, aktivieren kann für die Modellauswahl.
Ich behelfe mir damit das ich erst suchen lasse und dann das Modell nochmals genau auswähle.

Vielleicht hast Du da eine bessere Lösung für.....

Sub Autoscout()


'http://www.autoscout24.de/Search.aspx?vis=1&pricefrom=1000&cy=D&page=1&maxresults=500&results= _
20&ustate=N&ustate=U&um=True&sort=price&zipc=D
'ActiveWorkbook.FollowHyperlink Address:="http://www.autoscout24.de/Search.aspx?vis=1&pricefrom= _
1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&zipc=D", NewWindow:=True
Dim appIE As Object
Dim sTxt As String
 Dim x As Variant

myUrl = "http://www.autoscout24.de/Search.aspx?vis=1&pricefrom=1000&cy=D&page=1&maxresults=500& _
results=20&ustate=N&ustate=U&um=True&sort=price&zipc=D"
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Navigate myUrl



Application.Wait Time + TimeSerial(0, 0, 2)
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
IEApp.Visible = True



IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_makeSelect").Value = Worksheets("Eingabe").Range("C1200") 'Hersteller Daten eingeben
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_mileageFromDropDown").Value = Worksheets("Eingabe").Range("D1146") ' Km von
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_mileageToDropDown").Value = Worksheets("Eingabe").Range("E1146") ' Km bis
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_initialRegistrationFromDropDown").Value = Worksheets("Eingabe").Range("H1201") ' Bauj. von
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_initialRegistrationToDropDown").Value = Worksheets("Eingabe").Range("I1201") ' Bauj. bis
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_fuelDropDown").Value = Worksheets("Eingabe").Range("D1110") ' Treibstoffart
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_bodyTypeDropDown").Value = Worksheets("Eingabe").Range("C910") ' Karossrieform
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_gearingDropDown").Value = Worksheets("Eingabe").Range("C1137") ' Getriebeart
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_powerFromDropDown").Value = Worksheets("Eingabe").Range("D1371") ' Kw von
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_powerToDropDown").Value = Worksheets("Eingabe").Range("E1371") ' Kw bis

'IEApp.Document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_makeSelect").Focus
IEApp.document.forms(0).elements(" _
ctl00_ctl00_decoratedArea_contentArea_extendedSearch_searchButton").Click

End Sub
Gruß Uwe


  

Betrifft: so vllt von: Anton
Geschrieben am: 07.01.2010 13:45:08

Hallo Uwe,

Code:

Sub Autoscout()
  Dim IEApp As Object  
  Dim myUrl As String  
 
  myUrl = "http://www.autoscout24.de/Search.aspx?vis=1&pricefrom=1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&zipc=D"
  Set IEApp = CreateObject("InternetExplorer.Application")  
  IEApp.Navigate myUrl
  Do: Loop Until IEApp.Busy = False    
  Do: Loop Until IEApp.Busy = False    
  Application.Wait Time + TimeSerial(0, 0, 2)
  IEApp.Visible = True
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_makeSelect").Value = Worksheets("Eingabe").Range("C1200")    'Hersteller Daten eingeben
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_makeSelect").onchange  
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_mileageFromDropDown").Value = Worksheets("Eingabe").Range("D1146")   ' Km von
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_mileageToDropDown").Value = Worksheets("Eingabe").Range("E1146")    ' Km bis
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_initialRegistrationFromDropDown").Value = Worksheets("Eingabe").Range("H1201")   ' Bauj. von
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_initialRegistrationToDropDown").Value = Worksheets("Eingabe").Range("I1201")    ' Bauj. bis
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_fuelDropDown").Value = Worksheets("Eingabe").Range("D1110")   ' Treibstoffart
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_bodyTypeDropDown").Value = Worksheets("Eingabe").Range("C910")   ' Karossrieform
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_gearingDropDown").Value = Worksheets("Eingabe").Range("C1137")   ' Getriebeart
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_powerFromDropDown").Value = Worksheets("Eingabe").Range("D1371")   ' Kw von
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_powerToDropDown").Value = Worksheets("Eingabe").Range("E1371")    ' Kw bis
 'Modell auswählen
 'Suche manuell starten
End Sub  




mfg Anton


  

Betrifft: AW: so vllt von: Uwe Hladik
Geschrieben am: 07.01.2010 14:30:27

Hallo Anton,
versteh ich das richtig, dass man beide Listenfelder gleichzeitig nicht füllen kann. Marke und Modell?

Gruß Uwe


  

Betrifft: AW: so vllt von: Anton
Geschrieben am: 07.01.2010 14:52:56

Hallo Uwe,

man kann schon, nur man muss für jede Marke entsprechende Modelle und deren Values kennen:

Code:

Sub Autoscout1()
  Dim IEApp As Object  
  Dim myUrl As String  
 
  myUrl = "http://www.autoscout24.de/Search.aspx?vis=1&pricefrom=1000&cy=D&page=1&maxresults=500&results=20&ustate=N&ustate=U&um=True&sort=price&zipc=D"
  Set IEApp = CreateObject("InternetExplorer.Application")  
  IEApp.Navigate myUrl
  Do: Loop Until IEApp.Busy = False    
  Do: Loop Until IEApp.Busy = False    
  Application.Wait Time + TimeSerial(0, 0, 2)
  IEApp.Visible = True
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_makeSelect").Value = 9  
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_makeSelect").onchange  
  IEApp.document.forms(0).elements("ctl00_ctl00_decoratedArea_contentArea_extendedSearch_generalOptions_makeModelSelect_ctl00_modelSelect").Value = 1630  
End Sub  



mfg Anton


  

Betrifft: AW: so vllt von: Uwe Hladik
Geschrieben am: 07.01.2010 15:31:31

...ach so....langsam blick ich das.
die Marke wäre ja kein Problem ich die Schlüsselnummer vorher umzuwandeln. Nur müßte ich für die einelnen Modelle die Codes rausbekommen. Richtig?.....


  

Betrifft: AW: so vllt von: Uwe Hladik
Geschrieben am: 07.01.2010 15:38:14

...ich kann ja nur mir über den Browser den Quellcode anzeigen lassen. Da finde ich für alles andere den code......aber wo oder wie hast du den den code für das cabrio z.b. her.
Wie müßte ich den da vorgehen????


  

Betrifft: siehe Quellcode von: Anton
Geschrieben am: 07.01.2010 15:50:54

Hallo Uwe,

wenn du Marke auswählst , dann siehst du im Quellcode auch entsprechende Modelle.

mfg Anton


  

Betrifft: AW: siehe Quellcode von: Uwe Hladik
Geschrieben am: 07.01.2010 15:58:50

darf ich da nochmal laienhaft fragen.......muß ich dafür ein entsprechendes Programm haben, oder reicht dafür der internet Explorer aus. Für alles finde ich ja was, aber halt nicht für das Modell der Marke?
Mit dem Explorer kann ich ja nur den Quelltext anzeigen lassen......


  

Betrifft: AW: siehe Quellcode von: Anton
Geschrieben am: 07.01.2010 16:26:16

Hallo Uwe,

ich benutze Firefox(markieren-Rechtsklick in die Markierung-Auswahl-Quelltext anzeigen)



mfg Anton


  

Betrifft: AW: siehe Quellcode von: Uwe Hladik
Geschrieben am: 07.01.2010 16:53:12

Super Anton,
hab den mal benutzt, und da sieht man die Codes.

Da hab ich was zu tun wenn ich die alle rausschreibe :-)

Vielen Dank nochmal für die tolle Hilfe.

Gruß Uwe