xml-to-excel-via-url
#41
Hi Zwenn!

Klappt super, allerdings werden bei 5 Sekunden immer noch manche xml nicht erfasst, während bei 10 Sekunden immer alles abgefragt wird.

Ich probiere mal weiter mit 6, 7 oder 8 Sekunden.

Die Anzahl der Datensätze zu variieren, klappt mit größer 1 = 2 oder 5 oder eben 10, aber leider nicht mit 1.

anzahlDatensaetze = 1 'optional, wenn weggelassen, werden alle eingelesen

Hast Du da eine Idee?

Gruss

Peter
Top
#42
Hi Peter,

wenn Du die Wartezeit so hoch setzen musst damit es klappt, liegt es in der Tat am Server, von dem Du die Daten abrufst. Aber gut, am Ende zählt, dass es funktioniert. Auch wenn es somit natürlich viel länger dauern wird die Ergebnisse zu bekommen. Aber was solls ... Man kann auch gerne mal zwei statt einen Kaffe einnehmen :32: 

Um auch einen Datensatz pro Datei auslesen zu können und nicht nur für die erste, musst Du folgende Zeile in der Prozedur AlleXMLsAbrufen()  ändern:
(Hatte vergessen, dass man das anpassen muss, wenn es keine Kopfzeile gibt)


Code:
If Sheets(ergebnisTabelle).Cells(Rows.Count, 1).End(xlUp).Row = 1 Then

Erweitern in:

Code:
If Sheets(ergebnisTabelle).Cells(Rows.Count, 1).End(xlUp).Row = 1 And Sheets(ergebnisTabelle).Cells(1, 1) = "" Then

Viele Grüße,

Zwenn
[-] Folgende(r) 1 Nutzer sagt Danke an Zwenn für diesen Beitrag:
  • PeterN
Top
#43
Jippppppiiiiiiiiiii!!!

Super! Danke!
Top
#44
Da freut sich aber einer :87:

Darf ich mal fragen, wozu Du die ganzen Daten brauchst und wie Du sie weiter verwendest? Ist reine Neugierde.

Falls Du öfter eine Änderung der Anzahl der auszulesenden Datensätze pro XML brauchst, kann man auch eine Zelle in der URL Tabelle vorsehen, in der Du einfach nur die Zahl eintragen musst.
Top
#45
Hi Zwenn!

Die Abfragen laufen super, nur das es (zeitweise) leider auf 100 eine Abfrage gibt die keinen Wert liefert, weil es in der xml (aktuell) keine(n) Wert(e) gibt.

Das verschiebt natürlich die ganze Ergebnisliste um eins, zwei, drei nach unten und macht sie mehr oder weniger unbrauchbar.

Es gibt ganz oben in der xml einen einmaligen Wert:

Code:
<totalresults>MENGE</totalresults>


Normalerweise ist dieser Wert immer einiges über 10, aber manchmal leider eben 0:


Code:
<totalresults>0</totalresults>


Hast Du eine Idee wie man die Zeile


Code:
<totalresults>


mit abfragen kann und bei 0 zum Beispiel statt des (nicht vorhandenen) Ergebnisses jeweils viermal 0 in die Zeile schreibt?

Dann wäre die Zeile vorhanden, ich würde Sie gleich erkennen und könnte dementsprechend handeln.

Danke und Gruss

Peter
Top
#46
Hallo Peter,

dazu fallen mir zwei Lösungsansätze ein. Man kann entweder den Wert verarbeiten, den Du genannt hast oder man geht davon aus, dass es keine Ergebnisse für eine Datei gibt, wenn keine result-Tags geunden wurden. Ich tendiere zur ersten Lösung, weil das die 'direkte' Aussage ist. Ich habe allerdings erst heute Abend Zeit mich darum zu kümmern.

Brauchst Du dann 10x eine 'Nullzeile', um einen ganzen Block zu haben oder reicht Dir dann eine Zeile, nur zum Markieren sozusagen?

Viele Grüße,

Zwenn
Top
#47
Hi Zwenn,

ich tendiere auch zur ersten Lösung.

Was die Nullzeilen betrifft, würde ich das Thema von der Menge der abgefragten Zeilen abhängig machen.

Also bei einem Wert eine Zeilen mit Nullen und bei 10 dann am "besten" 10 Zeilen mit Nullen. Grundsätzlich würde auch eine Null in einer Zeile reichen, egal ob ein oder x Werte.

Da ich die Daten aber blockweise weiterverarbeite, wäre die Orientierung an der abgefragten Menge pro xml am "schönsten".

Also dann z.B. 10x eine "Nullzeile.

Gruss

Peter
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste