Problem mit VBA und Excel Microsoft Excel - Mappe1

Hallo

Ich habe da ein kleines (eventuell auch ein größeres) Problem mit VBA und Excel
Ich schreibe zuerst die Auszuge aus dem Code und komme dann zum Fehler (Problem)

Dim oxl As Excel.Application
Set oxl = New Excel.Application
oxl.Visible = False
oxl.Workbooks.Add

oxl.Workbooks(1).Worksheets(„Tabelle1“).Cells(100, 14).FormulaR1C1 = „=10“

oxl.Workbooks(1).Close
oxl.Quit

Ich habe jede Menge Aufrufe in der Form von oxl.Workbooks(1).Worksheets(„Tabelle1“).Cells(100, 15).FormulaR1C1 = „=10“ im Programm normal funktionieren die alle aber ab eine bestimmten Anzahl gehen die auf einmal nicht mehr ich kann allerdings nicht sagen warum und es kommt folgende Fehlermeldung:

"
Die Aktion konnte nicht beendet werden, da Microsoft Excel - Mappe1 (Microsoft Excel - Mappe1) nicht antwortet. Wählen Sie Wechseln zu, um zu Microsoft Excel - Mappe1 zu wechseln und das Problem zu lösen.
"

So gehe ich jetzt auf die Excelmappe funktioniert alles in der Mappe wieder nur die VB Zeile kann nicht mehr ausgeführt werden.
Das Lustige ist das Problem tritt bei Excel 2007 auf die Frage ist jetzt warum tritt das auf und was kann ich dagegen tun
mit Excel 2003 gibt’s da kein Problem und das Programm läuft Problemlos von Anfang bis zum Ende.

Hat jemand dazu eine Idee

mfg
Andreas

Hallo Andreas,

Ich habe jede Menge Aufrufe in der Form von
oxl.Workbooks(1).Worksheets(„Tabelle1“).Cells(100,
15).FormulaR1C1 = „=10“ im Programm

Das solltest du auf jeden Fall reduzieren, jeder Zugriff dieser Art kostet Zeit.

normal funktionieren die
alle aber ab eine bestimmten Anzahl gehen die auf einmal nicht
mehr ich kann allerdings nicht sagen warum und es kommt
folgende Fehlermeldung:

"
Die Aktion konnte nicht beendet werden, da Microsoft Excel -
Mappe1 (Microsoft Excel - Mappe1) nicht antwortet. Wählen Sie
Wechseln zu, um zu Microsoft Excel - Mappe1 zu wechseln und
das Problem zu lösen.
"

Excel ist mit so vielen Aufgaben auf einmal überfordert, es reagiert erst mal nicht mehr. Kommt nach einen definierten Zeit keine Rückmeldung wird eine Fehlermeldung generiert.

In VB kannst du dieses Verhalten beeinflussen:

App.OleServerBusyRaiseError = True

'Zeit ohne Rückmeldung bis zur Ausgabe der Fehlermeldungen:
App.OleServerBusyTimeout = 10000 '10 sec ist Standard
App.OleRequestPendingTimeout = 5000 '5 sec ist Standard

'Titel der Meldungen
App.OleServerBusyMsgTitle = "Server antwortet nicht"
App.OleRequestPendingMsgTitle = "Server antwortet nicht"


'Text der Meldungen, die angezeigt werden wenn App.OleServerBusyRaiseError = True
App.OleServerBusyMsgText = "Server antwortet nicht!" & \_
 vbCrLf & vbCrLf & "Der Server ist im Moment nicht verfügbar" & \_
 vbCrLf & vbCrLf & "Klicken Sie 'Wiederholen' um es weiterhin zu versuchen." & \_
 vbCrLf & "Klicken Sie 'Abbrechen' um abzubrechen."

App.OleRequestPendingMsgText = "Auf Microsoft Excel® kann im Moment nicht zugeriffen werden." & \_
 vbCrLf & "Vermutlich ist gerade ein Dialog geöffnet (z.B. ""Öffnen..."" oder ""Optionen""). Schließen Sie diesen ggf. zuerst." & \_
 vbCrLf & vbCrLf & "Anderenfalls ist Microsoft Excel® gerade ausgelastet bzw. reagiert nicht mehr. Warten Sie in diesem Fall einige Zeit oder beenden Sie das Programm!"

Gruß Phil