Zeitproblem innerhaln VBA
15.06.2009 11:27:42
AyKay
ich habe nachstehenden VBA-Code. Hierbei wird eine bestimmte Datei geöffnet und mehrere Programme nacheinander ausgeführt. Mit ....
... Application.Run (Datei & "!Import_Abfragewerte") werden alle Abfragen in den Tabellenblättern aktualisiert (bis ca. 60 Stück)
... Application.Run ("Basisdaten_Aufwand.xls!uebertrag") wird eine Datenübertrag angestossen,
Problem ist nun, dass der erste Programmaufruf zeitlich etwas länger braucht jedoch aber der zweite Programmaufruf bereits während dessen startet. Konkret heißt dies, dass noch während der Aktualisierung der Übertrag stattfindet, was natürlich zu Konflikten führt.
Ich habe bereits versucht eine "Wait-Anweisung" zu berücksichtigen, leider jedoch ohne Erfolg. Auch eine Aufsplittung auf zwei separate Prozeduren die dann nacheinander aufgerufen werden brachte keinen Erfolg.
Vielen dank schon einmal im voraus für eure Hilfe.
Grüße,
AyKay
Const pwd_wrkbk = "zwackelmann"
Const pwd_sheets = "2g3h08"
Sub Aktualisierung_MWP_Tools_Click()
Dim wks As Worksheet
Dim Pfad, Datei As String
Pfad = "O:\MWP_Aktuell\05-Gesamt\"
'+++++++++++ Basisdaten_Aufwand Aktualisieren ++++++++++++++++++++
Datei = "Basisdaten_Aufwand.xls"
Application.EnableEvents = False
Workbooks.Open (Pfad & Datei)
ActiveWorkbook.Unprotect (pwd_wrkbk)
Application.EnableEvents = True
For Each wks In ActiveWorkbook.Worksheets
wks.Visible = True
Next
Application.Run (Datei & "!Import_Abfragewerte")
Application.Wait (Now + TimeValue("00:00:05"))
Application.Run ("Basisdaten_Aufwand.xls!uebertrag")
Application.Wait (Now + TimeValue("00:00:10"))
On Error Resume Next
ActiveWorkbook.Worksheets("Leer").Visible = True
For Each wks In ActiveWorkbook.Worksheets
If wks.Name = "leer" Then
wks.Visible = True
Else
wks.Visible = xlSheetHidden
End If
Next
'Workbooks(Datei).Protect (pwd_wrkbk)
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True
Workbooks(Datei).Close False
'+++++++++++ Basisdaten_Aufwand Aktualisieren ++++++++++++++++++++
End Sub