Hallo Darkbaron,
Ja genau so! Die rechte brauch ich (Index 3). Wie hast du das
hinbekommen?
an sich plump
Ich weiß nämlich nicht wie ich (ohne jetzt den ganzen WEbseitencode zu durchsuchen per Vba) herausbekomme vieviele Tabellen da auf einer Seites isnd, geschweige denn welchen Index 1-x sie haben, noch deren Namen.
Die sind wichtig um sie per Vba einzeln anzusprechen oder auch manuell bei Webabfragen.
Ich habe einfach ähnlichen Code wie in der einen datei benutzt, einfach von 1 bis 50
Blätter anlegen lassen, auf Blatt Tab1 war dann die Webanfrage zur dortigen tabelle 1, auf Tab2 die zu tabelle2 usw.
Gibt es keine 50 ste Tabelle in der Seite so bleibt Tab50 leer, aber es kommt keine Fehlermeldung. Tja dann halt manuell geschaut in welchem Blatt steht was.
Hier sah ich, nur in Blatt Tab1 und Tab3 steht etwas Tabellenartiges.
Dann habe ich für dich im Code nur Tabelle 1 und 3 auflisten lassen in Excel.
Im nachfolgenden Code wird wie du willst nur Tabelle 3 ausgelesen.
Zeigt der Excell Befehl „Externe Daten aus dem Web Einfügen“
bei dir die beiden Tabellen einzeln an? Bei mir zeigt er nur
die Gesamtseite als wählbar an und ich muss beide Tabellen mit
sämtlichen anderen Schrott übernehmen.
Nein. In XL 2007 kann ich auch keine einzelnen Tabellen manuell bestimmen/eingeben. Aber ich habe in XL 2000 ein Makro aufzeichnen lassen während ich eine Webabfrage erstellte.
Im Zuge der Erstellung kommt dann dieses Fenster:
http://www.pic-upload.de/view-21212779/Webabfrage200…
Das alles kann ich ausfüllen, anklicken. WÜßTE ich den Tabellindex oder den Tabellennamen könnte ich ja wie es dort steht die einzeln oder mehrere in dem Fenster kommagetrennt eintragen.
Oder ich hake an „Nur tabellen“.
Unten im Bild siehste ja was man da noch auswählen kann, brauchst du nur die Tabellendaten und nicht die Vereinsnamen als Hyperlinks zur Vereinshomepage, nimm „Nur Text“,
Dein XL 2010 hat wohl wie XL 2007 bei Webabfragenerstellung vergessen einzubauen daß man Tabellen auswählen kann.
Ist für dich jetzt nicht weiter tragisch. Denn meinen Code haste ja und den versteht auch deine Version korrekt.
Willst du an der Webabfrage was abändern, so ändere das halt im Code direkt um.
Ist halb so wild wie es wohl wirkt. Mit ein bißchen Englisch kann man sich vieles erdenken was es bedeutet. Angenommen du willst wie eben gesagt die Daten nur in Textform.
Aha, das wird ja was mit Format sein o.ä.
WebFormatting = xlWebFormattingAll
sieht doch gut aus. Sicherheitshalber setzt du den Cursor in das Wort "
WebFormatting" und drückst F1.
Die Hilfe bestätigt daß du das richtige erwischt hast und nennt dir auch die drei Möglichkeiten in Vba, analog zur Auswahl in meinem Bild was du da als Wert für WebFormatting angeben kannst:
xlAll, xlNone oder xlRTF.
Ich find leicht zu erraten was Nur Text sein könnte, was RichTextFormat sein könnte was All sein könnte.
Derart kannst du alle Befehle durchprüfen was sie bedeuten.
Und nochmal zur Verdeutlichung, Eine alte Version
Option Explicit
Sub Erstellen2()
Dim N As Integer, S, Zei As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Worksheets(„Primera“).Delete
On Error GoTo 0
Application.DisplayAlerts = True
Worksheets.Add after:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = „Primera“
Set S = .QueryTables.Add(Connection:= _
„URL;http://www.weltfussball.de/wettbewerb/arg-primera-di…“, _
Destination:=.Cells(1, 1))
With S
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = 3 '3 = dritte Tabelle der Seite
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
.Name = „ExterneDaten_1“
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = True ’ Aktualisiert Daten beim MappenÖffnen
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 60 ’ aktualisiert alle x min. automatisch
End With
.Columns(„A:stuck_out_tongue:“).Columns.AutoFit
End With
Application.ScreenUpdating = True
End Sub