Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
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

Schleife in Makro einbauen

Schleife in Makro einbauen
04.01.2019 20:29:59
Christian
Hallo an euch alle,
wollte mal fragen, ob jemand der sich mit Makros auskennt, da etwas einbaut, was die Abfrage bei Bedarf wiederholt:
Ich versuche ganz kurz zu sagen, was ich möchte, ohne dass zu viele Erklärungen zu viele Fragen und Misverständnisse aufwerfen:
Das Makro geht hin, arbeitet eine Liste von Internetseiten ab und kopiert gewisse Daten in meine Tabelle. Mein Wunsch ist dass sobald bei einem Link nichts eingefügt wurde, es so lange wiederholt wird, bis etwas eingefügt wurde und erst dann zum nächsten Link übergegangen wird. Ist das machbar?
Das Makro gibt in dem Fall das nichts heruntergeladen wird keinen Fehler aus.
Option Explicit
Public Sub Main()
Dim objIEApp As Object
Dim objIEDoc As Object
Dim objTab As Object
Dim lngCount As Long
Dim lngCalc As Long
Dim lngTMP As Long
Dim lngRow As Long
On Error GoTo Fin
With Application
.ScreenUpdating = False
.EnableEvents = False
lngCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
With Tabelle2
lngCount = IIf(Len(.Cells(.Rows.Count, 1)), _
.Rows.Count, .Cells(.Rows.Count, 1).End(xlUp).Row)
End With
With ThisWorkbook.Worksheets("Tabelle1")
Set objIEApp = CreateObject("InternetExplorer.Application")
objIEApp.Visible = False
For lngCount = 1 To lngCount
objIEApp.Navigate Tabelle2.Cells(lngCount, 1).Text
Do: Loop Until objIEApp.Busy = False
Do: Loop Until objIEApp.Busy = False
Set objIEDoc = objIEApp.Document
Do: Loop Until objIEDoc.ReadyState  4
lngRow = IIf(Len(.Cells(.Rows.Count, 1)), _
.Rows.Count, .Cells(.Rows.Count, 1).End(xlUp).Row) + 1
For Each objTab In objIEApp.Document.all
If objTab.className = "this-week" And objTab.nodeName = "SPAN" Then
Tabelle1.Cells(lngRow, 1) = CLng(objTab.innerText)
ElseIf objTab.className = "info-title" And objTab.nodeName = "SPAN" Then
Tabelle1.Cells(lngRow, 2) = objTab.innerText
lngRow = lngRow + 1
ElseIf objTab.className = "info-artist" And objTab.nodeName = "SPAN" Then
Tabelle1.Cells(lngRow, 3) = objTab.innerText
End If
Next objTab
Next lngCount
.Range("A1").Value = "Platz"
.Range("B1").Value = "Titel"
.Range("C1").Value = "Interpret"
.Columns("A:C").AutoFit
End With
Fin:
objIEApp.Quit
Set objIEDoc = Nothing
Set objIEApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = lngCalc
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife in Makro einbauen
05.01.2019 13:02:20
Piet
Hallo
ohne deinen Code im Detail zu kennen, geschweige zu verstehen, versuch ich dir einen Tipp zu geben zur Wiederholung zu geben!
Eine Sprungmarke einbauen, mit einem Merker "flag" und Wiederhol Zaehler zur Sprungauswertung.
ggf. kann man vor dem Sprung noch eine Application.Wait Routine einbauen. z.B. 1 Sekunde Wait.
wdh = 10   'Wiederholgzaehler - (keine Endlosschleife!!!)
With ThisWorkbook.Worksheets("Tabelle1")
neu:    flag = Empty   'bei gefundenen Werten auf "Ja" oder ok setzen!
Set objIEApp = CreateObject("InternetExplorer.Application")
'** im normalen Code wenn Werte kopiert wurden flag auf "Ja" oder Ok setzen!
'**  z.B. wenn sich ein Zahler oder eine Endzelle zum kopieren veraendert hat!
Next objTab
Next lngCount
if wdh 
mfg Piet
Anzeige
AW: Schleife in Makro einbauen
05.01.2019 20:45:24
Christian
Hallo Piet,
habe jezt einfach mal blind versucht, die beiden zusätzlichen Zeilen einzubauen, hab dann noch wdh und flag definiert, auf Verdacht als Long mal schaun, was das Makro jetzt macht, ist grad dabei die Sachen runterzuladen, dauert ein wenig, melde mich dann nochmal.
Gruß
Christian
geschlossen oWt
09.01.2019 19:09:28
Piet

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige