Clever-Excel-Forum

Normale Version: Query mit auto aktu.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich habe eine Abfrage in meiner Excel datei die alle 3min im Hintergrund sich aktuallisiert.

Das funktioniert auch alles top Smile


aber wenn ich gerade in einer anderen Excel Datei arbeite und die Aktuallisierung dran ist springt die Datei immer in das tabellenblatt wo die Abfrage ist.
ich hätte gerne das er bei der Hauptseite bleibt.

Wenn ich die Liste offen und aktiv habe funktioniert das so
Da wirst du wohl das Hauptworkbook explizit referenzieren müssen. Mehr gibts wenn du Code zeigst Smile
das wäre der code Smile

Code:
    ActiveWorkbook.Queries.Add Name:="Table 8", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Web.Page(Web.Contents(""XXXXXXXXTESTXXXXXXXXX""))," & Chr(13) & "" & Chr(10) & "    Data8 = Quelle{8}[Data]," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(Data8,{{""Gruppenname"", type text}, {""Ges"", Int64.Type}, {""Akt"", Int64.Type}, {""Pre"", Int64.Type}, {""Q"", Int64.Type}, {""InS"", Int64.Type}, {""Err"", Int64.Type}, {""InS %" & _
        """, Percentage.Type}, {""Err %"", Percentage.Type}, {""Ges2"", Int64.Type}, {""Frei"", Int64.Type}, {""Bes"", Int64.Type}, {""Post"", Int64.Type}, {""Pause"", Int64.Type}, {""Aktion"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 8"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Table 8]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 3
        .PreserveColumnInfo = False
        .ListObject.DisplayName = "Table_8"
        '.refresh BackgroundQuery:=False
    End With
   
Na also, mache überall aus ActiveWorkbook ThisWorkbook und aus ActiveSheet machst du Sheet("Der Name deines Sheets in dem der Code ausgeführt werden soll") fertig
Das ist so einfach und logisch das ist mir peinlich das ich da nicht drauf gekommen bin
Danke ^^
okay, zu früh gefreut.

oder hab ich etwas vergessen/übersehen?

Code:
    ThisWorkbook.Queries.Add Name:="Table 8", Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Quelle = Web.Page(Web.Contents(""htest12345/alo/agentUI_Supervisor.jsf""))," & Chr(13) & "" & Chr(10) & "    Data8 = Quelle{8}[Data]," & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"" = Table.TransformColumnTypes(Data8,{{""Gruppenname"", type text}, {""Ges"", Int64.Type}, {""Akt"", Int64.Type}, {""Pre"", Int64.Type}, {""Q"", Int64.Type}, {""InS"", Int64.Type}, {""Err"", Int64.Type}, {""InS %" & _
        """, Percentage.Type}, {""Err %"", Percentage.Type}, {""Ges2"", Int64.Type}, {""Frei"", Int64.Type}, {""Bes"", Int64.Type}, {""Post"", Int64.Type}, {""Pause"", Int64.Type}, {""Aktion"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Geänderter Typ"""
    With ThisWorkbook.Sheets("ALO2").ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 8"";Extended Properties=""""" _
        , Destination:=Range("$A$1")).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [Table 8]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 3
        .PreserveColumnInfo = False
        .ListObject.DisplayName = "Table_8"
        '.refresh BackgroundQuery:=True
    End With
   
   
Was genau funktioniert nicht? Es kann sich eigentlich nicht genau wie vorher verhalten. Ich könnte mir vorstellen, dass du deine Source und eventuell deine Query weiter spezifizieren musst.



Vielleicht reicht auch schon die Destination zu ThisWorkbook.Sheet("xyz").Range("$A$1") zu ändern.


Code:
With ThisWorkbook.Sheets("ALO2").ListObjects.Add(SourceType:=0, Source:= _

        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 8"";Extended Properties=""""", Destination:=Range("$A$1")).QueryTable

        .CommandText = Array("SELECT * FROM [Table 8]")
naja wenn ich die datei offen habe ist alles schick und alles wird im hintergrund gemacht.

wenn ich eine andere offen habe und darin arbeite springt aber die gemeinte datei auf das sheet wo die Abfrage ist und aktualisiertsich und bleibt in dem sheet stehen.

ich möchte aber das sich die Abfrage aktualisiertund ich auf meinem "haupt" sheet bleibe auch wenn die datei nicht aktiv ist.