Hallo erstmal!
Wer keine Lust hat kann auch nur das am Ende lesen, müsste für Tipps fast reichen
Ich möchte von Webseiten Daten importieren und zwar sehr viele. Auf der Haupseite der Hp ist jeweils ein kleiner button zu en Datensätzen. diese Datensätze erscheinen in Tabellenform und sollen in Excel (oder von mir aus auch erstmal in Word) landen.
Das gute ist, dass jede dieser "Unterseiten" auf denen die Datensätze sind dieselbe URL hat, bis auf die letzte ziffer. Diese ist durchgehen nummeriert.
Wenn ich die Daten über "Daten->aus dem Web" importiere und die richtigen Daten auswähle (über die kleinen Pfeile in dem Menü) sind sie in nahezu perfekter Form vorhanden.
Also habe ich ein Makro aufgezeichnet, dass genau das macht:
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://XXXXXPos=2" _
, Destination:=Range("$A$1"))
.Name = "28%27%29&dsqPos=1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "6,7"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
"
Dasselbe nochmal, nur mit einer URL die auf 2 endet und einer anderen Destination
Das ganze könnte ich einfach bis zum Ende des Datensatzes machen lassen (ca 17.000) nur kann VBA keine so großen Makros verarbeiten.
Jetzt meine Frage:
Gibt es eine möglichekeit die ganzen Parameter mit dem "." davor auszuklammern, sodass sie nicht in jedem "With" parameter enthalten sein müssen? Dann könnte ich wesentlich mehr Datensätze mit einem Makro laden.
Oder, noch besser:
Da die URLs alle bis auf die letzte Ziffer gleich sind will ich folgendes machen:
Ich weiß, dass man in VBA Schleifen machen kann, ich würde also gerne ein Schleife Programmieren, die bei jedem durhclauf die Zahl am Ende der URL um 1 erhöht und die Destination um 30 Zeilen nach unten schiebt.
Ich habe natürlich acuh schon rumgesucht und eine Lösung gefunden. Leider versteh ich nicht ganz wie der das meint. siehe hier:
wwwDARFMANHIERVERLINKEN?.excelforum.com/excel-programming/537500-activesheet-querytables-add-using-inputbox-and-or-a-url-list-in-a-txt-file-list.html
Hoffe ihr habt verstanden wie ich das meine
Danke schonmal,
|