ich habe mal wieder eine Wissenslücke. Ich hoffe, es hat vor dem Wochenende noch jemand Lust auf eine kleine Herausforderung. Danke schon mal vorab.
Hier das Makro, welches den "Laufzeitfehler 1004 [Expression.Error] Der Name "Source" wurde nicht erkannt. Ist er richtig geschrieben." verursacht.
Als Anlage auch die Datei.
https://www.herber.de/bbs/user/170254.xlsm
Sub gesamt()
Worksheets("start").Select
For Each wks In Worksheets
Application.DisplayAlerts = False
If wks.Name > ActiveSheet.Name _
And wks.Name > "URL" Then wks.Delete
Next
Dim Qus As WorkbookQuery
For Each Qus In ActiveWorkbook.Queries
Qus.Delete
Next
Dim Standort As Variant
Dim URL As Variant
Dim zaehler As Integer
zaehler = 2
'ws = "KAU"
Standort = ActiveWorkbook.Sheets("URL").Range("A" & zaehler)
URL = ActiveWorkbook.Sheets("URL").Range("B" & zaehler)
ActiveWorkbook.Queries.Add Name:=Standort, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Web.Page(Web.Contents(" & URL & "))," & Chr(13) & "" & Chr(10) & " Data1 = Quelle{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Data1,{{""Column1"", type text}, {""Column2"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
ActiveWorkbook.Worksheets.Add.Name = Standort
Sheets(Standort).Select
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=" & Standort & ";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
'.CommandText = Array("SELECT * FROM " & ws)
.CommandText = Array("SELECT * FROM [" & Standort & "]")
.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_Query__" & Standort
.Refresh BackgroundQuery:=False
End With
'Spaltenüberschriften anpassen
ActiveSheet.Range("A1").Value = "Tag"
ActiveSheet.Range("B1").Value = "Zeit"
'Zurück zur Basis
Sheets("start").Select
Range("A1").Select
End Sub
Grüße
Günther