AW: Inhalt aus Internet in Tabelle einfügen
18.02.2018 14:53:04
Christian
Hallo Günther,
die Bsp Datei hat zeigen sollen wie es zur Zeit aussieht wenn ich die Daten in die Tabelle kopiere und zeigen wo das Problem besteht, dass alles in eine Zelle geschrieben wird.
Habe jetzt folgende Schritte gemacht:
1. Neue Abfrage - Aus anderen Quellen - Aus dem Web
2. URL eingegeben als Standard
3. Im Navigator Tabelle1 ausgewählt und Bearbeiten
4. Spalte 4 nach Trennzeichen #(lf) geteilt, alle anderen Einstellungen gelassen
5. alle Spalten außer Platzierung, Interpret und Titel gelöscht
6. auf Schließen und Laden geklickt.
Dabei ist das hier herausgekommen.
https://www.herber.de/bbs/user/119890.xlsm
habe gleichzeitg ein Makro aufgezeichnet
es ist ja ziemliche Arbeit, jedesmal für jede der 2000 Seiten jede der Schritte neu ausführen zu müssen, kann man das Makro so ändern, dass ich eine Liste mit den Links erstelle, das Makro die Schritte für jeden der Links übernimmt und die Ergebnisse aller Abfragen dann untereinander auflistet?
Der Aufbau ist ja bei jedem Link identisch, außer das es mal 50, mal 75 mal 100 Songs sein können.
Ansonsten wäre das ja unendlich viel Arbeit.
Gruß
Christian
Sub Makro2()
' Makro2 Makro
ActiveWorkbook.Queries.Add Name:="Table 1", Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Web.Page(Web.Contents(""https://www. _
offiziellecharts.de/charts/single/for-date-221145580000""))," & Chr(13) & "" & Chr(10) & " Data1 = Quelle{1}[Data]," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Data1,{{""Column1"", Int64.Type}, {""Column2"", Int64.Type}, {""Column3"", type text}, {""Column4"", type text}})," & Chr(13) & "" & Chr(10) & " #""Spalte nach Trennzeichen teilen"" = Table.Spli" & _
"tColumn(#""Geänderter Typ"", ""Column4"", Splitter.SplitTextByDelimiter(""#(lf)"", _
QuoteStyle.Csv), {""Column4.1"", ""Column4.2"", ""Column4.3"", ""Column4.4"", ""Column4.5"", ""Column4.6"", ""Column4.7"", ""Column4.8"", ""Column4.9""})," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ1"" = Table.TransformColumnTypes(#""Spalte nach Trennzeichen teilen"",{{""Column4.1"", type text}, {""Column" & _
"4.2"", type text}, {""Column4.3"", type text}, {""Column4.4"", type text}, {""Column4. _
5"", type text}, {""Column4.6"", type text}, {""Column4.7"", type text}, {""Column4.8"", type text}, {""Column4.9"", type text}})," & Chr(13) & "" & Chr(10) & " #""Entfernte Spalten"" = Table.RemoveColumns(#""Geänderter Typ1"",{""Column4.3"", ""Column4.4"", ""Column4.5"", ""Column4.6"", ""Column4.7"", ""Co" & _
"lumn4.8"", ""Column4.9"", ""Column2"", ""Column3""})" & Chr(13) & "" & Chr(10) & "in" & _
Chr(13) & "" & Chr(10) & " #""Entfernte Spalten"""
Sheets.Add After:=ActiveSheet
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""Table 1""; _
Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [Table 1]")
.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_1"
.Refresh BackgroundQuery:=False
End With
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
Rows("1:1").Select
End Sub