-]Dr.OeTz![-
Lt. Junior Grade
- Registriert
- Nov. 2009
- Beiträge
- 509
Hallo Zusammen,
ich beiße mir gerade die Zähne aus und komme nicht weiter:
Ich möchte in einem Workbook mehrere Sheets aktualisieren und am Ende die neu hinzugefügten Daten verarbeiten. Dazu nutze ich Workbook.Open:
Nun möchte ich, dass nach dem Hinzufügen der Daten ([DO SOMETHING]) im LinkedWorkbook eine bestimmte Funktion gestartet wird, um die neuen Daten zu verarbeiten.
Dazu triggere ich derzeit in jedem LinkedWorkbookSheet einen "Worksheet_Change"-Event
Entscheidender Nachteil ist, dass diese Funktion natürlich mehrfach hintereinander aufgerufen wird, was leider sehr viel Zeit in Anspruch nimmt (es geht um mehrere LinkedWorkbook mit vielen Sheets - in der Masse macht das mehrere Minuten, da auch Iterationen ablaufen)
Gibt es eine Möglichkeit, die Funktion "RefreshData" aus dem "LinkedWorkbook" einmalig zu starten, nachdem alle Sheets aktualisiert sind und bevor ich es wieder schließe?
Applikation.Run wäre eine Option aber dafür wird wieder eine komplette Instanz meines LinkedWorkbook geöffnet.
Am charmantesten wäre wirklich die Funktion direkt aufrufen zu können, bevor ich LinkedWorkbook speichere und schließe
ich beiße mir gerade die Zähne aus und komme nicht weiter:
Ich möchte in einem Workbook mehrere Sheets aktualisieren und am Ende die neu hinzugefügten Daten verarbeiten. Dazu nutze ich Workbook.Open:
Code:
Dim LinkedWorkbook As Object
Set LinkedWorkbook = CreateObject("Excel.Application")
LinkedWorkbook.Workbooks.Open CStr(LinkedWorkbookFullPath)
For Each LinkedWorkbookSheet In LinkedWorkbook.Worksheets
[DO SOMETHING] 'Füge Content in LinkedWorkbookSheet ein
Next LinkedWorkbookSheet
[HIER sollte RefreshData aufgerufen werden]
LinkedWorkbook.Workbooks(LinkedWorkbookFileName).Close True
LinkedWorkbook.Quit
Nun möchte ich, dass nach dem Hinzufügen der Daten ([DO SOMETHING]) im LinkedWorkbook eine bestimmte Funktion gestartet wird, um die neuen Daten zu verarbeiten.
Dazu triggere ich derzeit in jedem LinkedWorkbookSheet einen "Worksheet_Change"-Event
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Call RefreshData
End Sub
Entscheidender Nachteil ist, dass diese Funktion natürlich mehrfach hintereinander aufgerufen wird, was leider sehr viel Zeit in Anspruch nimmt (es geht um mehrere LinkedWorkbook mit vielen Sheets - in der Masse macht das mehrere Minuten, da auch Iterationen ablaufen)
Gibt es eine Möglichkeit, die Funktion "RefreshData" aus dem "LinkedWorkbook" einmalig zu starten, nachdem alle Sheets aktualisiert sind und bevor ich es wieder schließe?
Applikation.Run wäre eine Option aber dafür wird wieder eine komplette Instanz meines LinkedWorkbook geöffnet.
Am charmantesten wäre wirklich die Funktion direkt aufrufen zu können, bevor ich LinkedWorkbook speichere und schließe