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

Webimport

Webimport
24.05.2016 22:37:16
Reaper
Hi,
Ich steh wieder mal auf'n Schlauch und brauch etwas Hilfe bezüglich Datenimport von einer I-Netseite.
Da bei uns die entsprechende Seite umfunktioniert wurde funktioniert die normale interne Excel Webabfrage nicht mehr, da auf der entsprechenden Seite ein Dropdownmenü einbaut wurde und der eingentliche Datensatz erst erscheint wenn in diesen Menü das entsprechende Kriterium ausgewählt wurde.
Jetzt versuche ich ich über ein Umweg daran zu kommen, aber iwi komm ich nicht weiter (Fehler: Das aufgerufene Objekt wurde von den Clients getrennt)
Ich habe mich auch hier schon durchs Forum gewühlt find aber nicht das richtige.
Ich hab auch schon mehrere verschiedene Codes probiert
wie z.B.
Do While IEApp.Busy: DoEvents: Loop
Do While IEApp.ReadyState 4: DoEvents: Loop
With IEApp.document
With .getElementById("Spaßmobile").selectedindex = 4
End With
.getElementById("Submit").Click
End With
der VB Code der I-Net Seite sieht so aus (Achtung: Namen geändert):
form id="filter-form" name="filter-form" action="Detail.action" method="post"
label for="selectReportTypeField" class="label">Select Report Type
select id="Modelle" class="elementSelect" name="Spaßmobile"
option value=""> option
option value="Motorrad">Motorrad option
option value="Auto">Auto option
option value="Fahrrad">Fahrard option
.
.
.
/select
input id="filter-form_Submit" name="Submit" value="Submit" onclick="return validateForm();" type="submit"
Ich bedanke mich schon mal im voraus
Gruß

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Webimport
25.05.2016 11:42:56
Zwenn
Hallo Reaper,
je nachdem, wie die Seite eine Auswahl an den Server schickt, um die neue Seite anzufordern, kannst Du entweder direkt auf die Seite zugreifen, die du brauchst oder Du musst Dich durch Formularaufrufe hangeln.
Verwendet die Seite 'Get', um Parameter an den Server zu liefern, so stehen diese alle in der URL. Diese URLs kannst Du Dir selbst zusammenbauen, wie Du sie brauchst und damit direkt auf die richtigen Unterseiten zugreifen.
Verwendet die Seite hingegen 'Post', kommst Du nur auf die richtige Seite, wenn Du von der ersten erreichbaren Seite aus via VBA die entsprechenden Formularaufrufe durchführst, um an die gewünschten Informationen zu kommen.
Ich hoffe für Dich, dass 'Get' verwendet wird ;-)
Viele Grüße,
Zwenn

Anzeige
AW: Webimport
25.05.2016 12:34:40
Zwenn
Wer lesen kann ist klar im Vorteil.
Sorry, steht ja im Text, dass 'post' verwendet wird. Da müsste ich mich selbst erstmal wieder einarbeiten.

Sorry, 'post' überlesen
25.05.2016 12:36:31
Zwenn
Wer lesen kann ist klar im Vorteil.
Sorry, steht ja im Text, dass 'post' verwendet wird. Da müsste ich mich selbst erstmal wieder einarbeiten.

AW: Sorry, 'post' überlesen
25.05.2016 17:06:38
Reaper
Hi,
Danke für die schnelle Antwort. Ich glaub da kommt ne Menge Arbeit auf mich, da über dem geposteten Code noch viel mehr steht. Da ich mich mit solchen Vb Code noch nich so richtig auskenne wirds schwierig.
Falls jemand Intresse hat mir dabei zu helfen wäre ich sehr Dankbar.
Gruß

Anzeige
AW: Webimport
26.05.2016 18:18:08
Michael
Hi zusammen,
ich habe mal einen Server (easyphp) aufgesetzt und herumgebastelt.
Die POST-SendenHTM.htm sieht so aus:
<html>
<!--
http://php.net/manual/de/tutorial.forms. _
php
https://wiki.selfhtml.org/wiki/HTML/Formulare/Auswahllisten
-->
<body>
Bitte Formular ausfuellen<br>
<form action="POST-Lesen.php" method="post">
<p>Ihr Name: <input type="text" name="name"/></p>
<p>Ihr Alter: <input type="text" name="alter" /></p>
<p><select name="Pizza" size="5" onchange="alert(this.value)">
<option value="Napoli">Pizza Napoli</option>
<option value="Funghi">Pizza Funghi</option>
<option value="Mare">Pizza Mare</option>
<option value="Tonno">Pizza Tonno</option>
<option value="Mexicana">Pizza Mexicana</option>
</select></p>
<p><input type="submit" name="machen" /></p>
</form>
</body>
</ht

Die POST-Lesen.php so:
<html>
<!-- http://php.net/manual/de/tutorial. _
forms.php
-->
<body>
Erhaltene Daten:<br>
Hallo <?php echo $_POST['name']; ?>.      <br>
Du bist <?php echo $_POST['alter']; ?> Jahre alt<br>
und liebst Pizza <?php echo $_POST['Pizza']; ?>.<br>
Alles klar?
</body>
</html>
Das Makro
Option Explicit
Sub POST_Form_Senden()
'Quellen:
'https://www.herber.de/forum/archiv/1120to1124/1121764_WEB_Formular_ausfuellen.html
'http://vbanet.blogspot.de/2012/07/internetexplorer-formular-ausfullen.html
Dim IEApp As Object
Dim IEDoc As Object
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
IEApp.Navigate "http://127.0.0.1/POST-SendenHTM.htm"
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
With IEApp.Document
Do: Loop Until .ReadyState = "complete"
.Forms(0).elements("name").Value = "Mustermann"
.Forms(0).elements("alter").Value = "22"
.Forms(0).elements("Pizza").Value = "Tonno"
.Forms(0).elements("machen").Click
'    .getelementbyid("?").Value = "Mustermann"
'    .getelementbyid("?").Click
End With
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
Stop
With IEApp.Document
Do: Loop Until .ReadyState = "complete"
End With
MsgBox IEApp.Document.body.outertext
MsgBox IEApp.Document.body.innertext
MsgBox "jetzt kannste den IE schließen"
Set IEApp = Nothing
End Sub

schreibt die Daten ins Formular und sendet es ab, womit die zweite Datei geladen wird und die Sachen brav anzeigt.
Die msgbox ganz unten liest sich sehr nett, aber mir ist es irgendwie nicht gelungen, mit IEApp.Document.xyz den AKTUELLEN, nachgeladenen Inhalt zu bekommen: da fällt hoffentlich Zwenn was ein, ich mache so Zeug nicht laufend...
Halt, halt, ich hatte die erste Datei zunächst als .php abgespeichert, wenn die .htm ist und .php nachgeladen wird, paßt es:
Makro mit F8 zeilenweise bis VOR der Zeile mit dem .Click:
Userbild
ein paar Zeilen weiter ...
Userbild
und dann in Excel:
Userbild
Schöne Grüße,
Michael
P.S.: Der Knackpunkt ist wohl, daß man bei Option die Angabe hinter dem value übergibt und NICHT das, was zwischen den Tags steht.

Anzeige
AW: Webimport
27.05.2016 17:23:12
Reaper
Hi,
Vielen Dank für deine schnelle Hilfe. Das mit den .Forms(0) wäre ich net drauf gekommen, Ich werd das mal schnellstmöglich bei mir umsetzen und hoffen dases daran gelegen hat.
Ich poste es wenn es gefunzt hat
thx
Gruß

AW: Webimport
01.06.2016 08:05:46
Reaper
Hi,
Also ich hab jetzt mehrere Tage mir die Zähne ausgebissen und auch diverse Foren durchforstet.
Aber ich werd da aus den Beispielen net schlau. So wie's aussieht muss ich erst eventuell diverse "Div Container" ansprechen um an die eigentlichen Daten ran zu kommen.
vllt hat ja noch jemand nen guten Ansatz
Danke
Gruß
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige