2015-10-30 1 views
0

Excel 2010 & SSIS 2012 - lorsque Outlook est ouvert et que la macro est exécutée, j'obtiens une erreur d'exécution 429 - ActiveX ne peut pas créer d'objet ... lorsque Outlook est fermé la macro fonctionne comme prévu - il charge toutes les pièces jointes qui commencent par Mini Report et se termine par xlsx.La macro VBA pour obtenir les pièces jointes Outlook ne fonctionne que lorsque Outlook est fermé

Le package SSIS ouvre le fichier Excel avec la macro, puis renvoie l'erreur ActiveX. Encore une fois, si Outlook est fermé, le package SSIS ouvre Excel, exécute la macro (téléchargement des fichiers) et les enregistre dans notre répertoire de lecteur partagé.

Qu'ai-je codé pour qu'Outlook soit fermé?

code VBA comme suit:

Sub GetAttachments() 

Dim olapp As Object 
Dim olmapi As Object 
Dim olmail As Object 
Dim olitem As Object 
Dim lrow As Integer 
Dim olattach As Object 
Dim FileName As String 

Const num As Integer = 6 
Const path As String = "Y:\Wireline Forecast\MiniReport - Production\Mini Report Region Automation\Load Files\" 
Const strFileType As String = "xlsx" 

Set olapp = CreateObject("outlook.application") 
Set olmapi = getnamespace("MAPI") 
Set olmail = olmapi.getdefaultfolder(num) 

If olmail.Items.restrict("[UNREAD]=True").Count = 0 Then 

    MsgBox ("No Unread mails") 

    Else 
     For Each olitem In olmail.Items.restrict("[UNREAD]=True") 
      If olitem.attachments.Count <> 0 Then 
       For Each olattach In olitem.attachments 
        If Left(olattach.FileName, 11) = "Mini Report" And Right(olattach.FileName, 4) = "xlsx" Then 
        FileName = "Y:\Wireline Forecast\MiniReport - Production\Mini Report Region Automation\Load Files\" & olattach.FileName 
        olattach.SaveAsFile FileName 
        End If 
       Next olattach 
      End If 
     Next olitem 
End If 

End Sub 

Répondre

0

Cela peut se produire si Outlook et Excel sont en cours d'exécution dans différents contextes de sécurité. Assurez-vous que les deux ou aucune des applications ne sont exécutées avec des privilèges élevés (Exécuter en tant qu'administrateur).

+0

IT l'a verrouillé donc pas la possibilité de fonctionner en tant qu'administrateur afin que les deux programmes devraient fonctionner au même niveau de sécurité. – Robdenham

+0

Comment sont lancés Excel et Outlook? –

0

En fait découvert qu'Outlook était "verrouillé" quand il était ouvert, ce qui explique l'erreur ActiveX donc j'ai construit un travail autour .... Je viens d'ajouter une tâche de script qui ferme Outlook afin que la prochaine tâche de script puisse obtenir pièces jointes puis une autre tâche de script qui rouvre Outlook. Pas la plus jolie ni la plus propre mais ça marche pour l'instant.