Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

webabfrage

Betrifft: webabfrage von: Markus
Geschrieben am: 12.08.2020 09:18:02

Hallo zusammen,

ich habe mir eine webabfrage gebastelt, die beim Abruf jedoch sehr lange dauert. Das kann zum einen am abzufragenden server liegen oder auch an der Datenmenge.

Vielleicht auch meinem code.
Könntet Ihr mal d'rüber schauen, ob ich etwas verbessern/ beschleunigen kann.

Danke

  • Private Sub CommandButton1_Click()
    For i = 63 To 112
    On Error Resume Next
    strTicker = Worksheets("Tabelle1").Cells(i, 1).Value & ".TG"
    Application.Calculation = xlManual
    Application.ScreenUpdating = False
        With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;https://abfrageserversym=" & strTicker & "", Destination:=Sheets("Tabelle1").Cells(i, 4))
            .Name = strTicker
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = True
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = False
            .RefreshStyle = xlOverwriteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = False
            .RefreshPeriod = 0
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = "7"
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = True
            .WebDisableDateRecognition = True
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With
        Next i
        Application.Calculation = xlAutomatic
    Application.ScreenUpdating = True
    End Sub


  • Betrifft: AW: webabfrage
    von: Luschi
    Geschrieben am: 12.08.2020 10:26:19

    Hallo Markus,
    ich habe mir eine webabfrage gebastelt
    Schon diese Aussage ist falsch, denn durch die For-Schleife sind es 50 Web-Abfragen (112-63+1) bei jedem Klick auf den Button.
    Folgende Fehler/Mängel treten dabei auf:
    - Zielangabe Destination:=Sheets("Tabelle1").Cells(i, 4))
      die Variable 'i' steht hier für die Zeilen- und nicht für die Spalten-Nr
    - d.h.: jede Abfrage läßt nur die 1. Datenzeile der vorherigen Abfrage stehen und überschreibt alles andere!
    - so hast Du ein Datensalat, der in sich nicht stimmig ist
    - da ich glaube, daß diese Web-Abfragen werktäglich passieren, erzeugst Du auch immer 50 neue Abfragen
    - die selbstverständlich von Excel auch verwaltet werden müssen
    - so kann (nein wird es) sein, daß Du Hunderte/Tausende von Abfragen erstellst hast
    - obwohl eine Aktualisierung der existierenden Abfragen sinnvoller ist.

    Gruß von Luschi
    aus klein-Paris



    Betrifft: AW: webabfrage
    von: Markus
    Geschrieben am: 12.08.2020 10:32:15

    Hallo Luschi,

    danke für deine schnelle Antwort.
    Ja das stimmt wohl und die ActiveWorkbook.Connections sowie die ActiveSheet.QueryTables lösche ich dann immer wieder mal.

    Das mit den zeilen stimmt schon da von zeile 63 bis 112 abwärts aktualisiert wird.
    Es funktioniert auch.

    wie kann ich denn eine existierende abfrage aktualisieren?

    Betrifft: AW: webabfrage
    von: Luschi
    Geschrieben am: 12.08.2020 10:45:36

    Hallo Markus,
    da von zeile 63 bis 112 abwärts aktualisiert wird
    Aber nicht bei diesem Schleifen-Konstrukt:
    For i = 63 To 112
      'Dein Code
    Next i

    Gruß von Luschi
    aus klein-Paris

    Betrifft: Statt VB-Aufzeichnung, besser POWERQUERY! (owT)
    von: EtoPHG
    Geschrieben am: 12.08.2020 11:44:26



    Beiträge aus dem Excel-Forum zum Thema "webabfrage"