Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MS Excel Makro mit Schleife bei Webabfrage

MS Excel Makro mit Schleife bei Webabfrage
08.01.2013 11:18:05
User
Hallo,
ich benötige Hilfe bei der Erstellung eines Makros für Webabfragen.
Bisher habe ich mein Makro mit dem Makrorecorder für eine Webabfrage aufgezeichnet.
Die Basis dafür liefert mein erstes Tabellenblatt. Dort stehen einige hundert Hyperlinks/Internetadressen, welche per Makro ausgelesen werden sollen untereinander.
Das von mir aufgezeichnete Makro mit der Webabfrage für den obersten Hyperlink funktioniert gut. Die Daten von der Website sollen jeweils auf ein neues Tabellenblatt produziert werden.
Meine Frage ist nun: Wie kann ich eine Schleife in das Makro einbauen, damit nach dem Auslesen eines Hyperlinks die nächste Zeile angesteuert wird somit die nächste Website ausgelesen wird. Dies soll automatisch mit Start des Makros bis zum Ende der ca. 300 Hyperlinks geschehen. Als Ergebnis sollen dann ca. 300 neue Tabellenblätter mit den jeweiligen Inhalten der ca. 300 Hyperlinks erzeugt worden sein.
Hier ist mein bisheriges Makro:
(Die Websites sind nun Beispielnamen, hier website1, website2, website3 etc.)
Sub Makro1()
' Makro1 Makro
Range("A1").Select
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.website1.de", _
Destination:=Range("A1"))
.Name = "www.website1.de"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Vielen Dank für Eure Unterstützung.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MS Excel Makro mit Schleife bei Webabfrage
08.01.2013 14:12:59
fcs
Hallo unknown User,
unter Excel 2003 bekommst du bei ca. 300 Tabellenblättern in einer Arbeitsmappe Probleme, da nur ca. 250 Tabellenblätter pro Arbeitsmappe möglich sind.
Du müsstest also die Tabellenblätter mit den Abfragen auf mehrere Dateien verteilen.
Nachfolgend dein aufgezeichnetes Makro angepasst für die Bearbeitung einer Liste von Links.
Gruß
Franz
Sub Makro1()
Dim wksListeLinks As Worksheet, lngZeile As Long
Dim strLink As String, strCon As String
Dim wbZiel As Workbook, wksZiel As Worksheet, iCount As Integer
Dim strName As String
Set wksListeLinks = ActiveSheet
With wksListeLinks
lngZeile = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
For lngZeile = 1 To lngZeile 'Startzeile der Liste ggf. anpassen!
iCount = iCount + 1
If wbZiel Is Nothing Then
Application.Workbooks.Add Template:=xlWBATWorksheet
Set wbZiel = ActiveWorkbook
Set wksZiel = wbZiel.Worksheets(1)
Else
Set wksZiel = wbZiel.Worksheets.Add(after:=wksZiel)
End If
strLink = wksListeLinks.Cells(lngZeile, 1)
strCon = "URL;" & strLink
strName = strLink
With wksZiel.QueryTables.Add(Connection:=strCon, _
Destination:=wksZiel.Range("A1"))
.Name = strName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
If iCount = 50 Then '50 = max. Anzahl Tabellenblätter (Abfragen) pro Arbeitsmappe
'für den Max-Wert sind Werte von 1 bis ca. 250 (Excel 2003) zulässig.
iCount = 0
Set wbZiel = Nothing
End If
Next lngZeile
End Sub

Anzeige
AW: MS Excel Makro mit Schleife bei Webabfrage
08.01.2013 14:34:53
User
Hallo Franz,
vielen Dank für deine schnelle Antwort.
Ich habe deinen Code so übernommen. In meinem Tabellenblatt habe ich erst einmal 45 Internetadressen untereinander gestellt, um den Makro zu testen.
Es erscheint jedoch immer die Fehlermeldung:
Laufzeitzehler '1004'
Die Adresse dieser Website ist unzulässig. Überprüfen Sie die Adresse und versuchen Sie es erneut.
Und es wird immer eine neue Datei mit einer Tabelle geöffnet.
Die Internetadressen sind jedoch korrekt und auslesbar.

AW: MS Excel Makro mit Schleife bei Webabfrage
08.01.2013 16:16:44
fcs
Hallo,
die Adressen der Webseiten müssen in der Spalte A als Zellinhalte stehen.
Die Link-Adresse sollte vollständig sein, also z.B.:
https://www.herber.de/cgi-bin/lastmsgs_a.pl
Falls "http://" bei deinen Adressen fehlt, dann kannst du es im Code mit einbauen:
strLink = "http://" & wksListeLinks.Cells(lngZeile, 1)
Ich hatte das Makro mit 2 Links getestet und das funktionierte einwandfrei.
Das Makro ist so eingerichtet, dass die Tabellenblätter immer in eine neue Arbeitsmappe geschrieben werden, da du unter Excel 2003 ja nicht mehr als ca. 255 Blätter in einer Mappe unterbringen kannst.
Wenn du erst einmal die Tabellenblätter in der aktiven Mappe einfügen willst, dann mit folgender Anpassung vor der For...-Zeile:

Set wbZiel = ActiveWorkbook
set wksZiel = Activesheet
For lngZeile = 1 To lngZeile 'Startzeile der Liste ggf. anpassen!
Gruß
Franz

Anzeige
AW: MS Excel Makro mit Schleife bei Webabfrage
09.01.2013 14:40:18
User
Hallo Franz,
es lag tatsächlich an dem fehlenden http://
Vielen Dank. Die Funktion klappt ohne Probleme. Vielen Dank.
Nun muss ich nur noch sehen, wie ich die unformatierten Ergebnisse in einer Tabelle zusammenfügen kann.
Vielleicht finde ich dazu auch noch eine hilfreiche Funktion.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige