Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Webabfrage - Lauzeitfehler

Webabfrage - Lauzeitfehler
25.03.2008 09:21:24
Thomas
Hallo XLPros!
Versuche jetzt die ganz Zeit im Archiv herum und komme nicht auf die lösung, daher bitte ich euch um hilfe!
Ich habe eine Webabfrage welche mir immer einen Laufzeitfehler 1004 auswirft ("Aktion kann nicht ausgeführt werden, da die Daten gerade im Hintergrund aktualisiert werden").
Wie kann ich vba sagen das er warten soll mit dem restlichen code bis die aktualisierung abgeschlossen ist?
Danke für eure Hilfe,
Thomas H.

Private Sub Daten_aktualisieren()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim Tag, Monat, Jahr, ws As Worksheet, qt As QueryTable
' Alle Links in der Arbeitsmappe aktualisieren
ActiveWorkbook.RefreshAll
' Layout anpassen
For Each ws In ActiveWorkbook.Worksheets
ws.Cells(1, 1).HorizontalAlignment = xlLeft
ws.Hyperlinks.Delete
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next
Next ws
' Speicherdatum festlegen
Tag = Format(Day(Mid(Sheets("ALST").Range("A1"), 19, 10)), "00")
Monat = Format(Month(Mid(Sheets("ALST").Range("A1"), 19, 10)), "00")
Jahr = Format(Year(Right(Sheets("ALST").Range("A1"), 4)), "0000")
' Datei Abspeichern
ActiveWorkbook.SaveAs Filename:="C:\Bericht_08\Tageswerte" & Jahr & "-" & Monat & "-" & Tag  _
_
& ".xls"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Webabfrage - Lauzeitfehler
25.03.2008 10:53:05
Tino
Hallo,
kann bei dir im Code keine Webabfrage erkennen.
Erkenne nur, dass du eventuell vorhandene Webabfragen löschst.
qt.Delete
Gruß
Tino

AW: Webabfrage - Lauzeitfehler
25.03.2008 11:52:26
Renee
Hi Thomas,
Mit der Zeile ActiveWorkbook.RefreshAll werden alle Queries refreshed. Falls eine von diesen die .BackgroundQuery Eigenschaft auf True gesetzt hat (Refresh passiert im Hintergrund, parallel zum ausführenden Code!), werden deine nächsten Befehlt, d.h. v.a. der .Delete der Queries auf einen Fehler laufen.
Abhilfe: setzte in allen Queries die .BackgroundQuery Eigenschaft auf False.
GreetZ Renée

Anzeige
AW: Webabfrage - Lauzeitfehler
25.03.2008 11:48:38
fcs
Hallo Thomas,
ich hab es mal mit OnTime probiert. Alle 5 Sekunden erolgt eine Prüfung, ob noch Aktualisierungen laufen. Diese Routine wird rekursiv aufgerufen.
Bei mir hat es mit 2 Querries in 2 Tabellenblättern funktioniert.
Ein paar Zeilen sind meiner Meinung nach bei dir nicht ganz korrekt. Ich hab sie mit meinen Anpassungen markiert.
Gruß
Franz

Private Sub Daten_aktualisieren()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' Alle Links in der Arbeitsmappe aktualisieren
ActiveWorkbook.RefreshAll
'Prüfen, ob noch Aktualisierungen laufen
Call RefreshPruefen
End Sub
Private Sub RefreshPruefen()
Dim ws As Worksheet, qt As QueryTable, bolRefreshed As Boolean
On Error GoTo Fehler
'Prüfen, ob noch Aktualisierungen laufen
For Each ws In ActiveWorkbook.Worksheets
bolRefreshed = True
For Each qt In ws.QueryTables
If qt.Refreshing = True Then
bolRefreshed = False
Exit For
End If
Next qt
If bolRefreshed = False Then
'Falls noch Aktualisierungen laufen, dann nach 5 Sekunden neuer Versuch
'        MsgBox "Datenaktualisierung läuft noch!" 'Nur zum Testen
Application.OnTime Now + TimeSerial(0, 0, 5), "RefreshPruefen"
Exit Sub
End If
Next ws
Call Formate_aktualisieren
GoTo Ende
Fehler:
MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
Ende:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Private Sub Formate_aktualisieren()
Dim Tag, Monat, Jahr, ws As Worksheet, qt As QueryTable
On Error GoTo Fehler
' Layout anpassen
For Each ws In ActiveWorkbook.Worksheets
ws.Cells(1, 1).HorizontalAlignment = xlLeft
ws.Hyperlinks.Delete
'        For Each qt In Activesheet.QueryTables '##########?
For Each qt In ws.QueryTables '##########?
qt.Delete
Next
Next ws
' Speicherdatum festlegen
Tag = Format(Day(Mid(Sheets("ALST").Range("A1"), 19, 10)), "00")
Monat = Format(Month(Mid(Sheets("ALST").Range("A1"), 19, 10)), "00")
'Jahr = Format(Year(Right(Sheets("ALST").Range("A1"), 4)), "0000") '#########?
Jahr = Right(Sheets("ALST").Range("A1"), 4) '#########?
' Datei Abspeichern
ActiveWorkbook.SaveAs Filename:="C:\Bericht_08\Tageswerte" & Jahr & "-" & Monat & "-" _
& Tag & ".xls"
GoTo Ende
Fehler:
MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
Ende:
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Webabfrage - Lauzeitfehler
25.03.2008 11:54:53
Thomas
Hallo Leute!
Danke für eure Hilfe!
Werde den code entsprechend abändern.
Schönen Tag noch,
TH

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige