Erreur 80020009 propriété "start" inconnue
Bonjour,
J'ai un document excel qui va récupérer par extraction les rendez-vous sur outlook. Ce code fonctionne sur mon ordinateur mais lorsque un collaborateur essaie de l'utiliser il a l'erreur suivante.
Je ne sais pas comment se fait-il que son excel ne reconnaît pas la propriété start alors que nous avons la même version. Peut-être est-ce un problème d'administrateur ou de confidentialité de macros ?
Dim olApp As Object
Dim olNS As Object
Dim olFolder As Object
Dim olApt As Object
Dim oAppointments As Object
Dim ws As Worksheet
Dim folderItems As Outlook.Items
Dim sharedMailboxEmails As Variant
Dim SharedMailboxEmail As Variant
Dim outSharedName As Object
'changer les adresses mails pour choisir celles des calendriers partagés'
sharedMailboxEmails = Array("collaborateur@outlook.com")
Dim NextRow As Long
Dim FromDate As Date
Dim ToDate As Date
Dim pos As Integer
'permet à l'utilisateur de rentrer la date de départ en mettant une boîte de saisie"
FromDate = InputBox("Entrer la date de départ (01/01/yyyy)", "Date de départ")
If Not IsDate(FromDate) Then
MsgBox "Date de saisie invalide. Essayer à nouveau.", vbExclamation
Exit Sub
End If
'permet à l'utilisateur de rentrer la date de fin en mettant une boîte de saisie"
ToDate = InputBox("Entrer la date d'aujourd'hui(dd/mm/yyyy)", "Date de fin")
If Not IsDate(FromDate) Then
MsgBox "Date de saisie invalide. Essayer à nouveau.", vbExclamation
Exit Sub
End If
On Error Resume Next
Set olApp = GetObject(, "Outlook.Application")
If Err.Number > 0 Then Set olApp = CreateObject("Outlook.Application")
On Error GoTo 0
Set olNS = olApp.GetNamespace("MAPI")
'créer une boucle qui prend les rendez-vous de chaque calendrier'
For Each SharedMailboxEmail In sharedMailboxEmails
Set outSharedName = olNS.CreateRecipient(SharedMailboxEmail)
Set olFolder = olNS.GetSharedDefaultFolder(outSharedName, 9)
NextRow = 2
Set folderItems = olFolder.Items
With folderItems
.Sort "[Start]"
.IncludeRecurrences = True
End With
With Sheets("RDV")
.Range("A1:D1").Value = Array("Objet", "Date", "Durée", "Emplacement")
Set olApt = folderItems.Find("[Start] >= """ & FromDate & """ and [Start] <= """ & ToDate & """")
Set ws = ThisWorkbook.Worksheets("RDV")
While TypeName(olApt) <> "Nothing"
.Cells(NextRow, "A").Value = olApt.Subject
.Cells(NextRow, "B").Value = CDate(olApt.Start)
.Cells(NextRow, "B").NumberFormat = "ddd yyyy/mm/dd hh:mm"
.Cells(NextRow, "C").Value = olApt.End - olApt.Start
.Cells(NextRow, "C").NumberFormat = "HH:MM:SS"
.Cells(NextRow, "D").Value = olApt.Location
NextRow = NextRow + 1
Set olApt = folderItems.FindNext
Wend
End WithMerci de votre aide par avance.
Bonjour carla3111
Pour moi je pense simplement que vous n'avez pas les mêmes colonnes affichées
A vérifier et nous dire
A+
Merci pour votre réponse, vous parlez des colonnes sur le fichier excel ?
Normalement elles sont identiques car c'est le même fichier. J'ai juste modifié l'adresse email dans le code pour que ça ouvre leur calendrier et non plus le mien.
sharedMailboxEmails = Array("collaborateur@outlook.com")
Auparavant, array il y avait mon adresse et la leur et j'arrivais à extraire les données.
Lorsque j'enlève mon adresse mail j'arrive toujours à extraire les données de mon collaborateur mais dès lors qu'il le fait depuis son ordinateur ça ne fonctionne plus. C'est embêtant car je ne suis que de passage (stagiaire) et mon adresse mail va être supprimé à ma sortie et j'aimerais que le document fonctionne depuis d'autres ordinateurs.
Dites moi si ce n'est pas clair.
Merci encore
Re,
Non je parle des colonnes sur Outlook, vous faites appel ici
CDate(olApt.Start)Je vois aussi ceci
Dim folderItems As Outlook.ItemsCela veut dire que vous avez forcément la référence Outlook de cochée => à décocher
Et remplacé la ligne par
Dim folderItems As ObjectA+
Pourtant, ils ont la référence Microsoft Outlook 16.0 object library de coché aussi. Si je remplace outlook.items par object cela signifie-t-il que je ne passe plus par la référence outlook ? Cela a-t-il à voir avec la différence entre early and late binding.
Je suis un peu perdue
Merci pour votre patience
Carla3111
Si vous cochez une référence vous êtes en "early binding" mais dans ce cas, il faut tout coder pour
Si vous décochez la référence, vous êtes en "late binding" et même chose pour le codage
L'avantage du "late binding" est la compatibilité entre les différentes versions, selon les PC
pas forcément utile lorsqu'on est en entreprise ou le parce matériel et les logiciels sont en général homogènes
J'espère que cela sera plus clair pour vous
Oui, merci. Hormis les références à cocher pour être en early binding qu'est ce qui pourrait empêcher mon code de fonctionner si leurs références sont cochées ? Je pensais avoir tout coder en early binding mais il faut croire que non. Pourriez-vous m'aider à modifier les lignes manquantes ?
Merci beaucoup,
bonne journée
Quelqu'un peut m'aider ? merci
Bonjour,
Petite question, vous ne dites pas bonjour à vos collègues tous les jours
Merci de lire la charte du forum [A LIRE AVANT DE POSTER] et notamment
- Un minimum de politesse est de rigueur (bonjour, SVP, merci, ...), sans cela vous aurez peu de chance d'obtenir une réponse et vous risquez de voir votre message supprimé par un modérateur.
A+
Bonsoir, j'aurais besoin d'aide sur cette problématique que je dois résoudre avant la fin de la semaine. Le stress m'en a fait perdre ma politesse. Je m'en excuse.
Merci d'avance pour votre aide.
Bonjour carla3111
Vous êtes sur un forum ou nous sommes tous bénévoles, il ne doit donc y avoir aucun impératif de temps !
Ceci dit, vous devriez changer votre fusil d'épaule et coder en "early binding"
Vous pourriez ainsi voir, si les propriétés tel que "start" est applicable à l'objet ou non
Supprimez également les "On Error Resume Next" qui vous empêche de voir ou se situe véritablement l'erreur
A+