2016-02-03 3 views
1

Comment puis-je récupérer l'adresse e-mail du gestionnaire d'utilisateurs actuel? Je ne suis en mesure d'obtenir mon adresse e-mail en appelant leObtenir l'utilisateur actuel - signé pour échanger l'adresse e-mail du serveur - gestionnaire

Application.Session.CurrentUser.AddressEntry.GetExchangeUser

tout en utilisant

Application.Session.CurrentUser.AddressEntry.GetExchangeUser.Manager

ne renvoie rien ... Ce que je suis en train de réaliser est d'envoyer un e-mail à mon manager de droit feuille Excel et automatiser sur d'autres ordinateurs des utilisateurs (parce qu'ils ont d'autres gestionnaires)

Sub Mail_workbook_Outlook_1() 
    Dim OutApp As Object 
    Dim OutMail As Object 

    Set OutApp = CreateObject("Outlook.Application") 
    Set OutMail = OutApp.CreateItem(0) 

    If IsEmpty(Range("A21").Value) = True Then ' check if cell is empty 
     MsgBox "Cell is empty!", vbCritical, "It would be better to not left it empty..." ' if so, show user a message 
    Else 

    On Error Resume Next 
    With OutMail ' outlook message details 
     .To = "[email protected]" 
     .Subject = "Sales report - " & Format(Date, "dd-mm-yyyy") 
     .Body = "Here comes the full sales report from " & Format(Date, "dd-mm-yyyy") & Application.Session.CurrentUser.AddressEntry.GetExchangeUser 
     .Attachments.Add ActiveWorkbook.FullName ' add current file as an attachment to the outlook message 
     .Send 
    End With 
    On Error GoTo 0 
    MsgBox "File sent ", vbInformation, "You can now safely close the report" ' show confirmation message 

    Set OutMail = Nothing 
    Set OutApp = Nothing 
    End If 
End Sub 

Outlook contact with manager

+0

Que utilisez-vous dans OutlookSpy si vous cliquez sur IMAPISession | QueryIdentity? La fenêtre IMailUser possède-t-elle l'onglet PR_EMS_AB_MANAGER? –

+0

Je n'ai pas utilisé OutlookSpy - mais je vois qu'il a une grande quantité d'options qui aideraient dans le développement ultérieur. Donc, pour répondre à votre question: je ne sais pas. Les stations d'entreprise ont certaines restrictions et autorisations, donc je pense que de tels logiciels ne seraient pas autorisés à être utilisés sur mon compte de toute façon. – sajthy

+0

Réponse Mise à jour. – 0m3r

Répondre

0

Pour obtenir le gestionnaire de l'utilisateur actuel.

Exemple sur

Option Explicit 
Sub GetManager() 

    MsgBox CreateObject("Outlook.Application").GetNamespace("MAPI") _ 
        .CurrentUser.AddressEntry.GetExchangeUser.Manager 

End Sub 

Modifier

Rappelez-utilisateur doit avoir la configuration du gestionnaire.

Modifier votre code de cette façon

With OutMail ' outlook message details 
     .To = CreateObject("Outlook.Application").GetNamespace("MAPI") _ 
        .CurrentUser.AddressEntry.GetExchangeUser.Manager 

     .Subject = "Sales report - " & Format(Date, "dd-mm-yyyy") 
     .Body = "Here comes the full sales report from " & Format(Date, "dd-mm-yyyy") 
     .Attachments.Add ActiveWorkbook.FullName 'attachment File 
     .Display 
'  .Send 
    End With 

Voir aussi sur MSDN Exemple

How to: Get Availability Information for an Exchange User's Manager

+0

Malheureusement, le code renvoie seulement une erreur: ** Variable d'objet ou Avec une variable de bloc non définie ** Je pense que je l'ai déjà essayé - ou un extrait très similaire - il y a quelques jours – sajthy

+1

Clarification: cela arrive seulement quand il n'y a pas de gestionnaire définir sur l'utilisateur actuel. Mais ce n'est pas un problème;) Je vous dois une bière Om3r! – sajthy