Hallo,
bin seit Tagen auf der Suche nach einer Problemlösung und hoffe hier kann mir endlich jemand helfen.
Was ich tun möchte: Jeden Tag soll um eine bestimmte Uhrzeit eine Arbeitsmappe (AM1) geöffnet werden, welche Daten enthält, die mithilfe des Bloomberg Add-Ins ständig aktualisiert werden. Diese Daten sollen dann automatisch in eine weitere Arbeitsmappe (AM2) kopiert werden, samt Datum und Uhrzeit. Danach soll (M2) gespeichert und beide Mappen geschlossen werden. Dazu habe ich ein VBScript geschrieben, welches ich um 12.00 Uhr per Aufgabenplanung starten soll und dann die AM1 öffnet und deren Makro "schreibeZeitreihe" öffnet, welches die Daten in AM2 kopiert.
Wo liegt mein Problem: Das Makro "schreibeZeitreihe" funktioniert wunderbar, aber wenn ich per VBScript AM1 öffnen lasse, aktualisiert Bloomberg die Daten nicht mehr. Es scheint als habe sich das Add-In deaktiviert. Der Befehl "Application.Run "RefreshEntireWorkbook", der beim "manuellen" Öffnen der Arbeitsmappe problemlos funktioniert, ist auf einmal nicht mehr verfügbar und das Bloomberg Ribbon ist zwar noch vorhanden, aber bei jedem Druck auf einen Button erscheint "Bloomberg Excel Tools is either corrupt or missing." Jedes Feld in dem eigentlich Bloomberg-Werte stehen sollten, enthält die Fehlermeldung "#NAME?".
Meine bisherigen Lösungsansätze: 1) Ich habe das VBScript bereits mit dem Befehl erweitert, dass er das Add-In "Bloomberg Excel Tools" auf installiert setzt. Auch x-beliebig langes Warten ist keine Lösung - weiterhin der Name Error.
2) Ich habe auch überlegt das VBScript einfach wegzulassen und eine dritte Arbeitsmappe(AM3) mit einem Makro zu versehen, welches das Makro von AM1 startet. Dazu habe ich dann einen Loop eingebaut, der abwarten soll, bis in keinem Feld mehr "#N/A Requesting Data..." steht. Auch das hat bisher nicht funktioniert, Bloomberg aktualisiert die Daten erst, wenn das Sub "aktualisiere" komplett durchgelaufen ist.
VB-Script Code zum Lösungsvorschlag 1)
VBA-Makro zum Lösungsvorschlag 2) (habe die Werte hier einfach mal ins gleiche Workbook übertragen, ist nur eine Testdatei.)
Der Loop stammt nicht von mir, sondern ich habe versucht folgenden Lösungsvorschlag umzusetzen: reddit.com/r/excel/comments/3a…rg_data_to_update_before/
Ich bin wie ihr vielleicht erkennt noch ein Grünschnabel, hoffe aber, dass mir jemand helfen kann
bin seit Tagen auf der Suche nach einer Problemlösung und hoffe hier kann mir endlich jemand helfen.
Was ich tun möchte: Jeden Tag soll um eine bestimmte Uhrzeit eine Arbeitsmappe (AM1) geöffnet werden, welche Daten enthält, die mithilfe des Bloomberg Add-Ins ständig aktualisiert werden. Diese Daten sollen dann automatisch in eine weitere Arbeitsmappe (AM2) kopiert werden, samt Datum und Uhrzeit. Danach soll (M2) gespeichert und beide Mappen geschlossen werden. Dazu habe ich ein VBScript geschrieben, welches ich um 12.00 Uhr per Aufgabenplanung starten soll und dann die AM1 öffnet und deren Makro "schreibeZeitreihe" öffnet, welches die Daten in AM2 kopiert.
Wo liegt mein Problem: Das Makro "schreibeZeitreihe" funktioniert wunderbar, aber wenn ich per VBScript AM1 öffnen lasse, aktualisiert Bloomberg die Daten nicht mehr. Es scheint als habe sich das Add-In deaktiviert. Der Befehl "Application.Run "RefreshEntireWorkbook", der beim "manuellen" Öffnen der Arbeitsmappe problemlos funktioniert, ist auf einmal nicht mehr verfügbar und das Bloomberg Ribbon ist zwar noch vorhanden, aber bei jedem Druck auf einen Button erscheint "Bloomberg Excel Tools is either corrupt or missing." Jedes Feld in dem eigentlich Bloomberg-Werte stehen sollten, enthält die Fehlermeldung "#NAME?".
Meine bisherigen Lösungsansätze: 1) Ich habe das VBScript bereits mit dem Befehl erweitert, dass er das Add-In "Bloomberg Excel Tools" auf installiert setzt. Auch x-beliebig langes Warten ist keine Lösung - weiterhin der Name Error.
2) Ich habe auch überlegt das VBScript einfach wegzulassen und eine dritte Arbeitsmappe(AM3) mit einem Makro zu versehen, welches das Makro von AM1 startet. Dazu habe ich dann einen Loop eingebaut, der abwarten soll, bis in keinem Feld mehr "#N/A Requesting Data..." steht. Auch das hat bisher nicht funktioniert, Bloomberg aktualisiert die Daten erst, wenn das Sub "aktualisiere" komplett durchgelaufen ist.
VB-Script Code zum Lösungsvorschlag 1)
Quellcode
VBA-Makro zum Lösungsvorschlag 2) (habe die Werte hier einfach mal ins gleiche Workbook übertragen, ist nur eine Testdatei.)
Quellcode
- Public Sub aktualisiere()
- Call Sheets(1).Range("M6:N6").Select 'assuming cell a1 is in "sheet1" of your workbook
- Call Application.Run("RefreshCurrentSelection")
- Application.Wait (Now + TimeValue("00:00:05"))
- Call ProcessData
- Application.Wait (Now + TimeValue("00:00:05"))
- Call Application.OnTime(Now + TimeValue("00:00:01"), "schreibeWerte")
- End Sub
- Private Sub ProcessData()
- Dim c As Range
- For Each c In Selection.Cells
- If c.Value = "#N/A Requesting Data..." Then
- Call Application.OnTime(Now + TimeValue("00:00:01"), "ProcessData")
- Exit Sub
- End If
- Next c
- End Sub
- Public Sub schreibeWerte()
- ThisWorkbook.ActiveSheet.Range("A1").Value = Now
- ThisWorkbook.ActiveSheet.Range("B1").Value = ThisWorkbook.ActiveSheet.Range("N6")
- End Sub
Der Loop stammt nicht von mir, sondern ich habe versucht folgenden Lösungsvorschlag umzusetzen: reddit.com/r/excel/comments/3a…rg_data_to_update_before/
Ich bin wie ihr vielleicht erkennt noch ein Grünschnabel, hoffe aber, dass mir jemand helfen kann
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Cappo493“ ()