Windows 10 / Office 365
Moin!
Von einer Internetseite lade ich jede Nacht Daten von Clans eines Computerspiels herunter. In einem Arbeitsblatt pflege ich eine Liste von diesen Clans, und ein Makro geht einen Clan nach dem anderen durch und öffnet eine Homepage mit diversen Daten aller Clans und lädt dort über die Webabfrage aus Excel ein bestimmtes Tabellenblatt dieser Internetseite herunter. Bei einigen Clans ist dieses Tabellenbaltt vorhanden, bei einigen nicht.
Bisher habe ich das so gelöst, dass über on error resume next die clans, die kein solches tabellenblatt hatten, er einfach keine Werte übernommen hat und zum nächsten gesprungen ist. Dies lief jetzt 6 Monate gut und seit gestern nacht wirft er mir die folgende Meldung aus, die ich wegklicken muss. Am Code hatte ich nichts geändert.
Den Code hatte ich über die Makroaufzeichnung generiert:
clanlink = Worksheets("ListeDeutscheClans").Cells(10 + i, 3)
Application.CutCopyMode = False
ActiveWorkbook.Queries.Add Name:="Table 3", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Web.Page(Web.Contents(""" & clanlink & """))," & Chr(13) & "" & Chr(10) & " Data3 = Quelle{3}[Data]," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Data3,{{"""", type text}, {""Spielername"", type text}, {""Veränderung"", type text}, {""Datum"", type text}})," & Chr(13) & "" & Chr(10) & " #""Entfernte Spalten"" = Table.RemoveColumns(#""Geänderter Typ"",{"""", ""Datum""})," & Chr(13) & "" & Chr(10) & " #" & _
"""Gefilterte Zeilen"" = Table.SelectRows(#""Entfernte Spalten"", each ([Veränderung] = ""Ausgetreten""))," & Chr(13) & "" & Chr(10) & " #""Hinzugefügte bedingte Spalte"" = Table.AddColumn(#""Gefilterte Zeilen"", ""Benutzerdefiniert"", each if [Veränderung] = ""Ausgetreten"" then 1 else null)" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Hinzugefügte bedingte Spalte"""
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 3"";Extended Properties=""""" _
, Destination:=Range("$B$10")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Table 3]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "Table_3"
.Refresh BackgroundQuery:=False
End With
"on error resume next" habe ich zu beginn des subs eingefügt, "on error goto 0" am ende.
Ich habe gegooglet und versucht, diese feedback-Funktion zu deaktivieren. konkret habe ich gefunden:
mir ist aufgefallen, dass der oben beschriebene Pfad bei mir nicht so funktioniert. ich habe einerseits den pfad so angelegt und di daten eingetragen und auch noch im microsoftordner im ordner common das so angelegt. Das hat nicht funktioniert. In Office selbst habe ich auch keine Möglichkeit gefunden, dies auszustellen.
Hat jemand Ideen?
PS: ich habe vom Programmieren nur meine Kiddie-Grundkenntnisse und ein bissl ist aus der Schule hängengeblieben. Alles, was ich von VBA weiß, habe ich durch google und testen hinbekommen....
Beste Grüße!
|