web-dev-qa-db-fra.com

Obtention d'erreur de type non défini par l'utilisateur lors de l'exécution du code

Est-ce que quelqu'un sait pourquoi je reçois une erreur "type défini par l'utilisateur non défini" dans la Function GetOutlookApp() As Outlook.Application au bas de ce code? 

Sub CreateAppointments()

Dim cell As Excel.Range
Dim rng As Excel.Range
Dim wholeColumn As Excel.Range
Dim startingCell As Excel.Range
Dim oApp As Outlook.Application
Dim tsk As Outlook.TaskItem
Dim wkbk As Excel.Workbook
Dim wksht As Excel.Worksheet
Dim lastRow As Long
Dim arrData As Variant
Dim i As Long

'démarrer l'application Outlook

Set oApp = GetOutlookApp
If oApp Is Nothing Then
  MsgBox "Could not start Outlook.", vbInformation
  Exit Sub
End If

'obtenir la plage de feuille de calcul dans un tableau en une seule fois

Set wkbk = ActiveWorkbook
Set wksht = wkbk.ActiveSheet
Set wholeColumn = wksht.Range("B:B")
lastRow = wholeColumn.End(xlDown).Row - 2
Set startingCell = wksht.Range("B2")
Set rng = wksht.Range(startingCell, startingCell.Offset(lastRow, 1))
arrData = Application.Transpose(rng.Value)

'boucle sur tableau et créer des tâches pour chaque enregistrement

For i = LBound(arrData, 2) To UBound(arrData, 2)
  Set tsk = oApp.CreateItem(olTaskItem)
  With tsk
    .DueDate = arrData(2, i)
    .Subject = arrData(1, i)
    .Save
  End With
Next I

End Sub

Function GetOutlookApp() As Outlook.Application
On Error Resume Next
Set GetOutlookApp = CreateObject("Outlook.Application")

End Function
6
Kim G

Le Comment automatiser Outlook à partir d'un autre programme article décrit toutes les étapes nécessaires à l'automatisation d'Outlook. Il est dit:

Pour utiliser la liaison anticipée, vous devez d'abord faire référence à la bibliothèque d'objets Outlook disponible. Pour cela, à partir de Visual Basic (VB) ou Visual Basic pour Applications, procédez comme suit:

  1. Dans Visual Basic Editor, dans le menu Outils, cliquez sur Références.
  2. Activez la case à cocher Microsoft Outlook 15.0 Object Library, puis cliquez sur OK.
11
Eugene Astafiev

J'avais le même problème lorsque j'utilise Outlook dans mes scripts VBA Excel et que je sélectionne:

Outils> Références> Cochez la case en regard de "Bibliothèque d'objets Microsoft Outlook 15.0.

1
D. Chirita