Thema Datum  Von Nutzer Rating
Antwort
30.11.2015 19:54:32 Herbert
NotSolved
30.11.2015 20:08:01 Gast75185
NotSolved
30.11.2015 20:28:35 Herbert
NotSolved
01.12.2015 12:59:08 Gast70543
NotSolved
01.12.2015 14:18:47 Herbert
NotSolved
Blau Website Dropdown-Menu und Button per Makro
02.12.2015 11:52:28 Gast25980
NotSolved
24.02.2016 08:53:42 Herbert
NotSolved

Ansicht des Beitrags:
Von:
Gast25980
Datum:
02.12.2015 11:52:28
Views:
820
Rating: Antwort:
  Ja
Thema:
Website Dropdown-Menu und Button per Makro

Hallo Herbert!

Hier mal ein Beispiel wie es geht. Es wird dabei das Datum aus Zelle A1 im ersten Sheet genommen und dann die Seite ausgelesen. Aber nicht wundern, dass dauert ein wenig - sind ja immerhin knapp 3000 Zugriffe auf die IE Objekte. Für deinen Wunsch aller Daten müsstest du nur ein for Schleife einbauen und durch die Zellen von Spalte A gehen. Dazu ggf. mal den COde anpassen, beende ihn derzeit, wenn ein Datum nicht (mehr) da ist. Und man könnte dem eingefügten Blatt noch den Namen vom Datum geben. Dabei solltest du aber vorher prüfen, ob ein Blatt mit dem Namen schon existiert. Sonst  kommt ein Fehler. Wenn was nicht klappt oder Fragen bestehen, einfach melden.

Gruß Matthias

Option Explicit

Sub htmlauslesen()

Dim myUrl As String         'adresse wo es hin gehen soll
Dim IE As Object            ' INstanz vom IE
Dim doc                     ' das Dokument object der Seite
Dim tagindex                ' Tag der gesucht wird
Dim a As Long, b As Long    ' nur zum Zählen
Dim spalten As Integer      'für die Tabellenspalten
Dim zeilen As Integer        'für die Tabellenzeilen

Dim inhalt() As Variant

Application.ScreenUpdating = False


myUrl = "www.cuttino.de"   ' Adresse von EPLAN URL

'datumswert aussuchen und setzen incl. überprüfen
' es gibt 36 Einträge, index 0 ist letzte Nacht, danach von 1 bis 35, über Index ansprechen


'prüfen, ob es den Wert gibt
If Worksheets(1).Cells(1, 1).Value > Date - 1 Or Worksheets(1).Cells(1, 1).Value < Date - 36 Then
    MsgBox "Das gewünschte Datum konnte nicht gefunden werden. Das Auswerten wird beendet. Bitte die Eingabe prüfen!"
    End
End If

If Worksheets(1).Cells(1, 1).Value = Date - 1 Then
tagindex = 0
Else
tagindex = DateDiff("d", Worksheets(1).Cells(1, 1).Value, Date)
If tagindex > 36 Then End 'doch noch was schief gelaufen
End If

' IE öffnen
Set IE = CreateObject("InternetExplorer.Application")  ' neue IE öffnen
Do: Loop Until IE.Busy = False

'Seite ansteuern
IE.Navigate myUrl
Do: Loop Until IE.Busy = False

'auf Dokument der Seite zugreifen
Set doc = IE.Document
Do: Loop Until doc.ReadyState = "complete"

doc.getElementById("d").selectedIndex = tagindex
Do: Loop Until doc.ReadyState = "complete"
'prüfen ob Eintrag geklappt hat

'anklicken
doc.forms(0).submit
Do: Loop Until doc.ReadyState = "complete"

'*********************************************************daten auslesen**************************************
' es gibt nur eine Tabelle deshalb brauch wir die nicht zählen
'anzahl spalten
zeilen = doc.getElementsByTagName("table")(0).getElementsByTagName("tr").Length - 2 ' lezte zeile nicht
spalten = doc.getElementsByTagName("table")(0).getElementsByTagName("tr")(1).getElementsByTagName("td").Length - 2 'eigentlich nur -1 aber die Auswahlspalte brauchen wir nicht
'jetzt unser Array festlegen
ReDim inhalt(zeilen, spalten)

'Überschriften auslesen
For b = 0 To spalten
    inhalt(0, b) = doc.getElementsByTagName("table")(0).getElementsByTagName("tr")(0).getElementsByTagName("th")(b).innertext
Next b
'jetzt den Rest auslesen
For a = 1 To zeilen - 1
    For b = 0 To spalten
        inhalt(a, b) = doc.getElementsByTagName("table")(0).getElementsByTagName("tr")(a + 1).getElementsByTagName("td")(b).innertext
    Next b 'spalten
Next a 'Zeilen

ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)

Worksheets(Worksheets.Count).Activate
ActiveSheet.Columns(3).NumberFormat = "@"
ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(zeilen, spalten)) = inhalt

IE.Quit          ' die Anwendung wieder schließen


Set doc = Nothing
Set IE = Nothing

Application.ScreenUpdating = True

End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.11.2015 19:54:32 Herbert
NotSolved
30.11.2015 20:08:01 Gast75185
NotSolved
30.11.2015 20:28:35 Herbert
NotSolved
01.12.2015 12:59:08 Gast70543
NotSolved
01.12.2015 14:18:47 Herbert
NotSolved
Blau Website Dropdown-Menu und Button per Makro
02.12.2015 11:52:28 Gast25980
NotSolved
24.02.2016 08:53:42 Herbert
NotSolved