Thema Datum  Von Nutzer Rating
Antwort
Rot Excel VBA Daten laden Java Script Website
10.08.2018 17:34:27 Silent_Warrior5
NotSolved
27.08.2018 16:17:16 Silent_Warrior5
Solved

Ansicht des Beitrags:
Von:
Silent_Warrior5
Datum:
10.08.2018 17:34:27
Views:
907
Rating: Antwort:
  Ja
Thema:
Excel VBA Daten laden Java Script Website

Hi Zusammen,

versuche Daten aus einer Java Script Website zu laden.

Habe dazu dieses Macro gefunden.

 

Sub LadenTest1()

  With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;https://musterseite.musterstadt.com/receipts?cond%5B1%5D%5Bcol_key%5D=order_header_id&cond%5B1%5D%5Border_header_id%5D=01372361&cond%5B1%5D%5Border_header_id_op%5D=eq&search_mode=advanced" _
        , Destination:=Range("$A$1"))
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
    
End Sub

Habe das Marko erstellt mit der Webabfrage im Excel, dabei kamen so 5 Script Fehlermeldungen die ich alle mit "nicht mehr ausführen" wegklicken konnte. Danach konnte ich die Daten laden.

Nun zum Problem:

Heute ging es nicht mehr, dies kam als Fehlermeldung:

Note: Since your browser does not support JavaScript, you must press the Resume button once to proceed.

Unten bei dem Code kam die Fehlermeldung "forbidden"...

Es geht erst wenn ich die einfache Webabfrage bearbeite in den Browser von Excel (glaub ist ein alter IE?) gehe und dort die Script Fehlermeldungen alle weg klicke und dann wird die Seite geladen, ich mach den Browser zu und beide Marcos gehen dann.

Brauch die Website cookies oder ein token? Wie kann man das im Quelltext der Seite sehen was die Seite für die Anmeldung benötigt. Ich habe eine Zeile gefunden die wie folgt aussieht:

 

<title>Empfangen</title>
<link href='/assets/favicon-cd941e7bee11ad2e862dc6b9b22bd4731c50c6c90339ce35d27cf01571ce69c2.ico' rel='shortcut icon'>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="WfrZaKKkNDZHkZmad1/GO/qe2oQghoPKkCWTEcD7GD0P1evo8OHgByyDajZg821gxSjc8kb470+AM4P9qXrTtw==" />
<!--[if lt IE 9]>
<script src="/assets/html5-e3b



Sub Dow_HistoricalData()

    Dim xmlHttp As Object
    Dim TR_col As Object, TR As Object
    Dim TD_col As Object, TD As Object
    Dim row As Long, col As Long

    Set xmlHttp = CreateObject("MSXML2.XMLHTTP.6.0")
    xmlHttp.Open "GET", "https://musterseite.musterstadt.com/receipts?cond%5B1%5D%5Bcol_key%5D=order_header_id&cond%5B1%5D%5Border_header_id%5D=1378801&cond%5B1%5D%5Border_header_id_op%5D=eq&search_mode=advanced", False
    xmlHttp.SetRequestHeader "Content-Type", "text/xml"
    xmlHttp.Send

    Dim html As Object
    Set html = CreateObject("htmlfile")
    html.body.innerHTML = xmlHttp.ResponseText

    Dim tbl As Object
    Set tbl = html.getElementById("curr_table")

    row = 1
    col = 1

    Set TR_col = html.getelementsbytagname("TR")
    For Each TR In TR_col
        Set TD_col = TR.getelementsbytagname("TD")
        For Each TD In TD_col
            Cells(row, col) = TD.innerText
            col = col + 1
        Next
        col = 1
        row = row + 1
    Next
End Sub


Wie kann man das Makro so umbauen dass man die Daten laden kann ohne ständig die Webabfrage manuell bearbeiten zu müssen?

 

Danke & Gruß

Silent


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel VBA Daten laden Java Script Website
10.08.2018 17:34:27 Silent_Warrior5
NotSolved
27.08.2018 16:17:16 Silent_Warrior5
Solved