Excel est en attente pour une autre application pour effectuer une action OLE

Avant de vous rendre à l'évidence: Application.DisplayAlerts = False n'a pas résolu mon problème.

J'ai écrit une procédure VBA (initié dans Excel 2010) qui boucle autour d'un tableau contenant les différents fichiers Excel. La boucle ouvre le fichier, actualise les données, enregistre et ferme le fichier pour chaque élément d'un tableau. J'ai écrit une erreur de capture de la sous routine donc je journal de laquelle les fichiers excel n'ont pas réussi à ouvrir/actualiser/save etc de sorte qu'un utilisateur peut vérifier manuellement.

Certains fichiers sont assez volumineux et impliquent une grande quantité de données qui transitent sur le réseau; parfois, je reçois une boîte de dialogue avec: Excel est en attente pour une autre application pour effectuer une action OLE.

Je pourrais utiliser Application.DisplayAlerts = False pour désactiver le message, mais ce ne serait probablement désactiver toutes les alertes donc je ne pouvais pas rattraper les erreurs?

En outre, j'ai testé à l'aide de la ligne et il ne s'arrête pas la boîte de dialogue pop-up. Si j'appuie sur entrer il porte sur mais sera susceptible de pop-up à nouveau quelques minutes plus tard.

Est-il un moyen de les arrêter est de message sans arrêt d'autres alertes?

NB. Mon processus est une instance de contrôle d'Excel qui gère le VBA et ouvre les classeurs à être actualisé dans une instance distincte.

Merci pour votre aide

Un extrait de mon code est ci-dessous qui contient l'actualisation des éléments

Sub Refresh_BoardPivots_Standard()
'    On Error GoTo Errorhandler

Dim i
Dim errorText As String
Dim x
Dim objXL As Excel.Application
Set objXL = CreateObject("Excel.Application")

GetPivotsToRefresh ' populate array from SQL
For Each i In StandardBoardPiv
DoEvents
'If File_Exists(i) Then
    If isFileOpen(i) = True Then
    errorText = i
    Failed(failedIndex) = errorText
    failedIndex = failedIndex + 1
    Else
    objXL.Visible = True 'False
     objXL.Workbooks.Open FileName:=i
        If objXL.ActiveWorkbook.ReadOnly = False Then
        BackgroundQuery = False
        Application.DisplayAlerts = False
        objXL.ActiveWorkbook.RefreshAll
        objXL.Application.CalculateFull
        objXL.Application.DisplayAlerts = False
        objXL.ActiveWorkbook.Save
        objXL.Application.DisplayAlerts = True
        objXL.Quit
        Else
        errorText = i
        Failed(failedIndex) = errorText
        failedIndex = failedIndex + 1
        objXL.Application.DisplayAlerts = False
        objXL.Quit
        Application.DisplayAlerts = True
        End If
    End If
'        Else
'        errorText = i
'        Failed(failedIndex) = errorText
'        failedIndex = failedIndex + 1
'    End If
DoEvents
If Ref = False Then
Exit For
End If

Next i

Exit Sub

'Errorhandler:
'
'errorText = i
'Failed(failedIndex) = errorText
'failedIndex = failedIndex + 1

'Resume Next
End Sub
Pourquoi le downvote, quel est le problème? Si il y a un problème, je peux le résoudre
Je vous ai donné un +1 parce que je ne vois rien de mal avec votre question. 😛 Question pour vous: pourquoi êtes-vous en train de créer une autre instance d'Excel? N'est-ce pas une complication inutile?
Grâce n8. Ouais j'ai dû ajouter de la 2ème instance à résoudre un problème avec ma rupture de sous-routine. L'utilisateur doit cliquer sur un bouton si ils ont besoin pour arrêter le processus en toute sécurité, mais l'accent a été en restant avec le rafraîchissant classeur de sorte que le bouton n'est pas accessible, d'où le séparer de l'instance.
Avez-vous vu cela? answers.microsoft.com/en-us/office/forum/office_2010-excel/...
Merci pour le lien, je l'ai essayé. Je n'ai pas eu de message d'erreur mais il a juste accroché jusqu'à ce que j'ai eu de crash. Un de mes amis pense qu'il pourrait être l'ordre de mon écran d'alerte états, va donner un aller. Cheers

OriginalL'auteur SliderSteve | 2014-09-05