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

URL Download von generierter Datei

URL Download von generierter Datei
06.06.2017 11:58:57
generierter
Hallo,
meine bisherige Suche im WWW war erfolglos, ich hoffe ihr könnt mir helfen.
Problem:
Für meine Arbeit muss ich regelmäßig auf diese Seite:
https://www.regelleistung.net/ext/data/
Man wählt die gewünschten Parameter aus, setzt ein Häkchen bei "Herunterladen" und klickt auf "anzeigen" um eine CSV-Datei zu erhalten. Diesen Prozess würde ich gerne automatisieren, soll heißen: Eingabefelder in Excel geben die gewünschten Parameter an, dass Makro übernimmt sie und führt die Abfrage automatisch durch.
Ich habe es mit der URLDownloadToFile-Methode probiert, doch leider passiert da nix (kein Download in den Standard Download-Ordner). Der Dateiname ist meines Erachtens korrekt, der von mir verwendete URL-Link wohl nicht, da die Datei wohl erst nach Bestätigung des Benutzers erstellt wird (mit Hilfe von Javascript?).
Hier der Code:

Sub DataUpdate()
Application.ScreenUpdating = False
wbDir = ActiveWorkbook.Path
wbAE = ActiveWorkbook.Name
Dim wbArr(3)
wbArr(1) = "ABGERUFENE_MRL_BETR_SOLL-WERTE.CSV"
wbArr(2) = "ABGERUFENE_SRL_BETR_IST-WERTE.CSV"
wbArr(3) = "RZ_SALDO_BETR_IST-WERTE_"
Dim startdate As Date
Dim startyear As String
Dim startmonth As String
Dim startday As String
Dim enddate As Date
Dim endyear As String
Dim endmonth As String
Dim endday As String
Dim tradedate As Date
Dim currentdate As Date
Dim currentyear As String
Dim currentmonth As String
Dim currentday As String
Dim SearchRng As Range
Dim FirstRow As Integer
Dim LastRow As Integer
currentdate = Workbooks(wbAE).Worksheets("test").Range("E9")
currentyear = Format(Year(currentdate), "0000")
currentmonth = Format(Month(currentdate), "00")
currentday = Format(Day(currentdate), "00")
today = currentyear & currentmonth & currentday
hours = Format(Hour(Now), "00")
minutes = Format(Minute(Now), "00")
seconds = Format(Second(Now), "00")
DownloadTime = hours & minutes & seconds
startdate = Workbooks(wbAE).Worksheets("test").Range("E11")
startyear = Format(Year(startdate), "0000")
startmonth = Format(Month(startdate), "00")
startday = Format(Day(startdate), "00")
Start = startyear & startmonth & startday
enddate = Workbooks(wbAE).Worksheets("test").Range("E12")
endyear = Format(Year(enddate), "0000")
endmonth = Format(Month(enddate), "00")
endday = Format(Day(enddate), "00")
last = endyear & endmonth & endday
For i = 3 To 3
DownloadFile = wbArr(i) & Start & "_" & last & "_Netzregelverbund_" & _ today & "-" &  _
DownloadTime & ".CSV"
Url = "https://www.regelleistung.net/ext/data/" & DownloadFile
LocalFilename = wbDir & "\" & DownloadFile
x = URLDownloadToFile(0, Url, LocalFilename, 0, 0) = 0
Next i
Application.ScreenUpdating = True
End Sub

Danke für jegliche Hilfe im Voraus.

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: URLMon
06.06.2017 14:48:33
Fennek
Hallo,
wie oben gezeigt, kann das Script nicht funktionieren. Es ist zu komplex, als dass ich es im Detail nachvollziehen möchte. Deshalb hier nur der Aufruf der URLMon - function:

Private Declare PtrSafe Function iDownLoad Lib "urlmon" Alias "URLDownloadToFileA" (ByVal  _
pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
mfg
AW: URL Download von generierter Datei
06.06.2017 15:00:15
generierter
Hi Marco
Abgesehen davon, dass dein String fehlerhaft ist (.CSV ist doppelt)...
Das Webformular verwendet die Post-Methode:
Userbild
Dies bedeutet, die Parameter (z.B. Start-/Enddatum) können nicht einfach mittels URL (z.B. www.google.com/search?q=meine+Frage) übergeben werden, wie dies bei der Get-Methode (Gegenstück zu Post) der Fall wäre, sondern die Daten werden "versteckt" mittels Formularfelder übertragen.
Kurz, du bekommst nur ein Ergebnis, wenn du die Formularfelder füllst und abschickst.
Hierzu müsstest du die ID's von allen Formularfeldern aus dem HTML-Code raus suchen und einen ähnlichen Code wie in folgendem Beitrag verwenden:
https://www.herber.de/forum/archiv/1340to1344/1340222_Statt_ueber_IE__ueber_Webbrowser_Element.html
Da ich keinen IE zur Verfügung habe, kann ich nicht testen. Aber da ich den HTML-Quellcode schon offen habe, hier die ID's:
form-from-date = "TT.MM.JJJJ"
form-to-date = "TT.MM.JJJJ"
form-download = True
form-tso = "Text"
form-type = "Text"
IEDocument.getElementById("submit-button").Click
Damit sollte dann wenigsten der Download automatisch starten. Um diesen auch noch automatisch zu speichern sehe ich im Moment keine Lösung.
cu
Chris
Anzeige
AW: ResponseText
06.06.2017 15:25:10
Fennek
Hallo,
wenn die Übergabe der Abfrageparameter geklappt hat, kann man die Antwort mit .Response in eine Variable übergeben und dann auswerten/speichern.
mfg
AW: ResponseText
06.06.2017 15:50:23
ChrisL
Hi Fennek
Leider habe ich deine Nachrichten erst gesehen, nachdem ich schon abgeschickt hatte.
Ich kann mich irren, aber ResponseText funktioniert m.W. nur, wenn der Inhalt im Browser angezeigt wird. Post führt aber zurück zur Startseite und der Download wird "separat" gestartet. Somit wird der ResponseText der Browser-Inhalt sein und nicht der Download.
cu
Chris
AW: ResponseText
06.06.2017 18:31:12
Marco
Hallo,
danke für eure Antworten bis hierher.
Ich hatte auch zuvor einen zweiten Anlauf mit der getelementbyid-Methode, auch dieser war nicht erfolgreich.
Die Einträge werden wie gewünscht übernommen, doch kommt es zu einer Fehlermeldung auf der Webseite:
{datacentre.data.result.error.todate}
In Folge dessen wird das Datum 'bis' mit dem heutigen Datum überschrieben. Erst nach einen manuellen Klick auf Anzeigen wird die Datei per Download-Dialogfenster heruntergeladen.
Anbei der Code:
Sub Test()
Dim ie      As Object
Dim frm     As Variant
Dim element As Variant
wbDir = ActiveWorkbook.Path
wbAE = ActiveWorkbook.Name
startdate = Format(Workbooks(wbAE).Worksheets("test").Range("E11"), "dd.mm.yyyy")
enddate = Format(Workbooks(wbAE).Worksheets("test").Range("E12"), "dd.mm.yyyy")
' Create InternetExplorer Object
Set ie = CreateObject("InternetExplorer.Application")
' You can uncoment Next line To see form results
ie.Visible = True
' Send the form data To URL As POST binary request
ie.navigate "https://www.regelleistung.net/ext/data/"
' Wait while IE loading...
While ie.Busy
DoEvents
Wend
ie.document.getElementById("form-from-date").Value = startdate
ie.document.getElementById("form-to-date").Value = enddate
ie.document.getElementById("form-tso").Value = "6"
ie.document.getElementById("form-type").Value = "RZ_SALDO"
ie.document.getElementById("form-download").Checked = True
ie.document.getElementById("submit-button").Click
'Application.Wait (Now + TimeValue("0:00:02"))
End Sub
Habt ihr einen Beispiel-Code für den Response-Befehl?
@Fennek: Der Link zum VBA Express Forum war ich, nur gab es keine hilfreiche Antwort?!
Anzeige
AW: ResponseText
06.06.2017 19:18:55
ChrisL
Hi Marco
Wie erwähnt habe ich keinen IE zum Testen und muss mich darum auch bald mal ausklinken ;)
Aber ich konnte dein Problem wie folgt nachvollziehen. Das Webformular habe ich mal auf ein Minimum reduziert:
https://www.herber.de/bbs/user/114070.txt
(Datei als HTML abspeichern und im Browser öffnen zwecks Test)
Dabei fällt dies hier auf:
input type="text" class="form-control" name="to" id="form-to-date" disabled="disabled" value="05.06.2017"
Du hattest also recht, dass das JavaScript (Datums-Picker) das Feld aktiviert. Wenn du die markierte Stelle löschst, dann wird wenigstens mal das Datum richtig gesetzt.
Wo ich im Moment noch nicht auf die Schliche gekommen bin, ist warum die Download CheckBox nicht aktiviert wird.
cu
Chris
Anzeige
AW: ResponseText
06.06.2017 19:25:00
ChrisL
Hi nochmal
Mit der CheckBox habe ich mich im JS verrannt. Ganz einfach, HTML Lektion 1 ;)
https://www.w3schools.com/tags/att_input_checked.asp
also einfach "Checked" am Ende vom HTML Tag schreiben.
cu
Chris
AW: ResponseText
07.06.2017 08:59:55
ChrisL
Hi
So jetzt hat mich der Ehrgeiz gepackt:
https://www.herber.de/bbs/user/114076.xlsm
Grundsätzlich sehe ich zwei Varianten.
1. Gemäss Makro im Anhang wird dynamisch eine temporäre HTML-Datei erzeugt. Diese enthält ein kleines Java Script, welches den Button OnLoad automatisch betätigt. Da die Temp-Datei in dem Moment in Gebrauch ist, kann sie nicht direkt wieder gelöscht werden (müsste z.B. im Workbook Close Ereignis mittels "Kill" erfolgen).
2. Du rufst mit deinem ursprünglichen Makro (GetElementByID) nicht die Webseite, sondern dein lokal gespeichertes HTML-Formular auf. Dieses kannst du dann frei von JS manipulieren und abschicken.
cu
Chris
Anzeige
Funktioniert nur über die Seite direkt
06.06.2017 23:50:43
Zwenn
Hallo Marco,
der direkte Download funktioniert nicht. Nichtmal, wenn man Dein Makro dahingehend repariert, dass es die richtigen Downloadlkinks generiert und auch alle verwendeten Variablen deklariert sind ;-) (Gut, letzteres ist nicht zwingend nötig, würde ich aber schon allein zur Fehlervermeidung immer machen.)
Warum es auch mit richtig generierten Links nicht funktioniert, kann ich nicht sagen. Ich nehme aber an, es liegt am Zeitstempel. Man kann lediglich CSV-Dateien runterladen, wenn man den ganzen Teil mit Daten und Uhrzeit weglässt. Das ist aber für Dich nicht zielführend. Eventuell wird die CSV-Datei nur generiert und zum Download angeboten, wenn der Downloadhaken im Formular als "gesetzt" übermittelt wurde. Das ist aber nur eine Vermutung. Kann auch sein, dass der (vermutete) Downloadlink für Dateien mit Zeitstempel einfach anders aussieht.
Auch das Auswerten des Netzwerkverkehrs mit Wireshark hat zu keinem Ergebnis geführt. Selbst wenn man die Post Daten des Formulars rausfiltern könnte, die weggesendet werden sobald man den Senden Button anklickt, bringt das nix. Die Seite läuft über https und damit ist der ganze Kladderadatsch verschlüsselt. Jedenfalls habe ich da keine sinnvollen Dinge rauslesen können. Würde die Seite mit Get arbeiten, wäre es einfach zu sehen, ob Du den richtigen Link kennst.
Dir bleibt aber noch immer die Methode, die Daten einfach von der Seite selbst zu holen. Wenn der Herunterladen Haken nicht gesetzt wird, werden die Daten ja auf der Seite ausgegeben. Zwar nur für den Tag, der ins erste Datumsfeld eingegeben wird, aber wer hindert Dich daran, eine Schleife über Deinen gewünschten Datumsbereich laufen zu lassen?
Um die Schleife zu verhindern war meine Idee, das zweite Datumsfeld zu aktivieren. Aber es bringt nix. Auch wenn man dann ein Endedatum bestimmt, wird es für die direkte Ausgabe auf der Seite nicht berücksichtigt. Das Aktivieren funktioniert mit folgendem Makro (Im Seitenquelltext wird disabled allerdings noch angezeigt. Vielleicht gehts deshalb nicht):

Option Explicit
Sub DatumBisFreigeben()
Dim Browser As Object
Dim URL As String
Dim KnotenAst As Object
URL = "https://www.regelleistung.net/ext/data/"
Set Browser = CreateObject("internetexplorer.application")
Browser.Visible = True
Browser.navigate URL
Do Until Browser.ReadyState = 4: DoEvents: Loop
Set KnotenAst = Browser.document.getElementByID("form-to-date")
If Not KnotenAst Is Nothing Then
KnotenAst.removeAttribute ("disabled")
Else
MsgBox "Datumsfeld nicht gefunden"
End If
End Sub

Leider kann man über VBA keine beliebigen DOM Befehle absetzen, um das Dokument im Browser zu manipulieren. Vielleicht gibt es Wege, aber ich habe es nach ein paar Versuchen aufgegeben. Ich hätte z.B. gerne .setAttribute(name, value) ausprobiert. Aber wenn man im VBA Editor .setAttribute("disabled", "enabled") eingibt, kann man nicht mal die Zeile wechseln, ohne das der Editor rumkrakehlt.
Wie gesagt, die Möglichkeit, die ich für Dich sehe, ist das tageweise Abgreifen der benötigten Daten, direkt von der Seite. Die Datentabelle ist sehr homogen aufgebaut. Sollte also mit etwas Fleißarbeit relativ leicht zu bewerkstelligen sein.
Viele Grüße,
Zwenn
PS: Response Text habe ich nicht ausprobiert. Aber wie Chris nehme ich auch an, dass das nicht funktioniert.
Anzeige
AW: Funktioniert nur über die Seite direkt
07.06.2017 10:36:55
Marco
Hallo,
vielen Dank für eure Beiträge, hatte gehofft ich habe irgendwo einen simplen Fehler gemacht, aber die Sache ist wohl doch etwas schwieriger als gedacht.
@ChrisL:
1.) Danke für das Script, das mit dem Kill-Befehl muss ich mir noch anschauen, aber zumindest könnte ich hier anknüpfen :)
2.) gemäß deines Vorschlags: müsste ich also statt:
"ie.navigate "https://www.regelleistung.net/ext/data/"
schreiben:
ie.navigate "C:\Users\Angestellter1\regelleistung.net.html"
und der Rest unverändert?
@Zwenn:
1.) Wie genau soll ich mir die Daten holen, über eine Webabfrage in Excel?
2.) auch wenn das nicht mehr relevant ist: wo genau ist mein Download-Link falsch? Per MsgBox hab ich mir den vollständigen Pfad anzeigen lassen (siehe Bild) und das sieht für mich korrekt aus?!
Userbild
Tut mir leid wenn meine Fragen aus eurer Sicht simpel sind, aber ich klaue mir die Codes nur die ganze Zeit zusammen, ohne sie auf Anhieb zu verstehen ;)
Anzeige
AW: Funktioniert nur über die Seite direkt
07.06.2017 11:02:06
ChrisL
Hi Marco
1.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Kill "C:\Pfad\temp.html"
End Sub
Die Datei muss vorher geschlossen worden sein.
2.
Ja. Ich habe es zwar noch nie ausprobiert, aber müsste eigentlich so funktionieren. Evtl. mit "file" ergänzen oder auch nicht (musst du ausprobieren)
ie.navigate "file:///C:\Users\Angestellter1\temp.html"
Variante 2 hätte den Vorteil, dass du eine Browser-Instanz hast, die du dann auch wieder schliessen kannst. Bei Variante 1 wird ein Hyperlink verwendet, was den Vorteil hat, dass es unabhängig vom verwendeten Browser funktioniert.
cu
Chris
Anzeige
AW: Funktioniert nur über die Seite direkt
07.06.2017 12:01:58
Marco
Hallo Chris,
erstmal wieder vielen Dank für deine Hilfe. Variante 1 probiere ich später aus.
Bei Variante 2 mit der IE-Instanz kommt es zur einer Fehlermeldung:
Userbild
Ich habe nur den Pfad wie zuvor besprochen angepasst, der Rest ist unverändert. Der Zusatz "file:///" machte keinen Unterschied.
SG Marco
AW: Funktioniert nur über die Seite direkt
07.06.2017 12:45:56
ChrisL
Hi Marco
Ich kann es mangels IE nicht testen. Aber der Aufruf sollte funktionieren (ohne file)...
https://excel.tips.net/T002003_Opening_an_HTML_Page_in_a_Macro.html
(Beispiel 1, nicht 2)
Hast du die TXT-Datei als HTML gespeichert? Stimmt Pfad und Dateiname? Auf welcher Zeile bleibt der Debugger hängen?
cu
Chris
Anzeige
AW: Funktioniert nur über die Seite direkt
07.06.2017 11:52:28
Zwenn
Hallo Marco,
was möchtest Du denn mit den Daten machen, wenn Du sie hast? Ich gehe davon aus, dass sie in Excel weiter verarbeitet werden sollen oder? Das würde bedeuten, Du brauchst die CSV Dateien eigentlich gar nicht, sondern sie sollten nur zur Bereitstellung der Daten dienen, richtig?
Nun habe ich mich gestern Abend zwar ausgiebig einige Stunden mit Deinem Problem zum runterladen der CSV Dateien beschäftigt, weil ich es interessant fand, nach einer Lösung zu suchen. Ich habe aber keine Energie darauf verwendet etwas zu programmieren, was Deine Daten direkt von der Seite holt. Ich ging davon aus, dass Du das selbst hin bekommst :-/
Nun habe ich die nächsten zwei Abende leider keine Zeit. Ich kann versuchen heute zwischendurch noch eine Art Prototyp zu basteln. Vielleicht können Fennek und Chris oder auch jemand anders Dir dann zu Rückfragen Antworten geben.
Wie eilig ist es denn mit der Lösung? Also, gibt es eine echte Deadline? Das Du es lieber gestern als heute hättest ist schon klar. Geht uns ja allen so, wenn wir an etwas dran sitzen ;-)
Zu Deiner Frage, was an Deinem Link falsch war.
Ich habe deinen Quellcode aus Deinem ersten Posting hier genommen und mir in einer Tabelle ausgeben lassen, was der eigentlich macht. Du hast bereits in Deinen Array Werten für die mittleren Linkteile die ersten beiden auf .csv enden lassen. Dahinter kommt aber noch etwas und der ganze Link endet dann noch einmal auf .csv.
Weiterhin hast Du als Grundlink https://www.regelleistung.net/ext/data/ verwendet. Irgendwo anders, habe ich aber noch die Variante https://www.regelleistung.net/download/ gefunden. Mit dieser klappen die Downloads ohne die Zeitstempel auch.
Wie auch immer, es führt sowieso keine der bisher ausprobierten Varianten von uns allen ans Ziel. Also, Daten direkt von der Seite abgreifen. Dazu ist es aber hilfreich zu wissen, wo die eigentlich hin sollen.
Viele Grüße,
Zwenn
AW: Funktioniert nur über die Seite direkt
07.06.2017 12:29:50
Marco
Hallo Zwenn,
ja genau, sie sollen in Excel weiterverarbeitet werden, die CSV selbst sind von geringen Interesse. Manuell würde ich die Parameter auf der Website per Hand auswählen, die Dateien einzeln herunterladen, öffnen und die Werte in ein anderes Excel-Sheet für die Weiterverarbeitung reinkopieren. Das möchte ich halt gerne automatisieren. Die Parameter RZ_SALDO, MRL, SRL, Netzregelverbund bleiben immer gleich, einzig das Datum variiert. Wichtig: Monatsübergreifend können keine Dateien heruntergeladen werden, aber ich will eh nur Tagweise Daten ziehen.
Es gibt keine Deadline per se, sitze aber selber schon seit einiger Zeit daran ohne nennenswerte Fortschritte. Wenn du etwas zum nächsten Montag/Dienstag bereitstellen könntest wäre das äußerst cool. Wäre das ausreichend Zeit? Ich will dich hier nicht pushen :D
SG Marco
AW: Funktioniert nur über die Seite direkt
07.06.2017 12:44:53
Zwenn
Hallo Marco,
keine Bange, jeder der hier Hilfe anbietet und leistet, macht das ja freiwillig. Nur nützt sie nicht so viel, wenn dann trotzdem Termine gerissen werden. Deshalb fragte ich.
Chris hatte ja auch noch eine andere Lösungsidee, für die er Dir was zur Verfügung gestellt hat. Falls Du damit weiter kommst, sag bitte unbedingt bescheid.
Übers Wochenende bekomme ich da was gebastelt für Dich. Da ich nicht weiß, was Du mit den Daten machst, wenn Du sie erstmal hast, schreibe ich sie einfach alle in eine eigene Tabelle ok? Sie direkt zu verarbeiten wäre vielleicht eleganter, aber das kannst Du ggf. ja noch immer selber bewerkstelligen, sobald der Automatismus des Daten Holens funktioniert. Vielleicht willst Du sie als Rohdaten aber sowieso archivieren, um eventuell auftretende Fragen Deiner Auswertungen nachvollziehen zu können.
Wenn ich soweit bin, melde ich mich wieder in diesem Thread.
Viele Grüße,
Zwenn
URL Download von generierter Datei
07.06.2017 18:11:16
generierter
Hallo zusammen,
so könnte es aussehen für RZ_SALDO Werte:
Code:

Option Explicit
Sub RZ_SALDO()
 'Tabelle namens "RZ_SALDO" erstellen
  Dim ie As Object, daten As Object, zeile As Object, zelle As Object, StartDate As Date    
  Dim lZeile As Long, lSpalte As Long, anzahlTage As Integer, i As Integer    
  lZeile = 1: lSpalte = 1
 'Beispiel vom 3.06.2017 bis 5.06.2017
  StartDate = CDate("03.06.2017") 'Startdatum anpassen
  anzahlTage = 3 'Anzahl der Tage anpassen
  Set ie = CreateObject("InternetExplorer.Application")  
  ie.Visible = True
  ie.navigate "https://www.regelleistung.net/ext/data/"
  While ie.Busy
    DoEvents
  Wend
  ie.document.getElementById("form-tso").Value = "6"
  ie.document.getElementById("form-type").Value = "RZ_SALDO"
  For i = 0 To anzahlTage - 1  
    ie.document.getElementById("form-from-date").Value = CStr(CDate(StartDate + i))
    ie.document.getElementById("submit-button").Click
    While ie.Busy
      DoEvents
    Wend
    Set daten = ie.document.getElementById("data-table")
    For Each zeile In daten.Rows  
      For Each zelle In zeile.Cells  
        Worksheets("RZ_SALDO").Cells(lZeile, lSpalte) = zelle.innertext
        lSpalte = lSpalte + 1
      Next
      lSpalte = 1
      lZeile = lZeile + 1
    Next
  Next
  ie.Quit
End Sub  


mfg Anton
@mrosek.marco oT
08.06.2017 15:56:27
Anton
AW:
09.06.2017 19:17:38
Marco
Hallo Anton,
vielen Dank für den Code, genau sowas war mein Ziel. Von hier aus kann ich es für meine Bedürfnisse anpassen etc. Nochmals vielen Dank, das gilt auch für die anderen Beiträge.
@Zwenn: Da Anton mir bereits eine Lösung zur Verfügung gestellt hat, brauchst du keinen Prototypen für mich zu basteln :)
SG Marco
AW: AW:
09.06.2017 20:26:39
Zwenn
Hallo Marco,
ja, der Quellcode von Anton ist echt gut. Habe den auch gleich ausprobiert und selber noch etwas dabei gelernt :-) Gut wenn Du jetzt selber klar kommst. Falls Fragen aufkommen, meldest Du Dich hier halt einfach wieder. Ich mache dann jetzt nix weiter.
Viele Grüße,
Zwenn

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige