armin-k
Goto Top

Mit Excel einen Termin im freigegebenen Kalender eines anderen Benutzer (nicht Standardkalender) einfügen

Liebes Forum,

vielleicht könnt Ihr mir wieder helfen...

In einer bestehenden "Outlook" Exchange-Umgebung möchte ich in einem anderen Postfach, in einem weiteren dort vorhandenen Kalender (nicht Standard-Kalender) mit einem Makro aus Excel heruas einen Termin anlegen. Ich habe bereits einen Code gefunden, der grundsätzlich das auch macht, allerdings wird lediglich der Standard-Kalender im anderen Postfach adressiert. Ich scheitere leider daran den weiteren Kalender konkret zu adressieren..

Hat jemand eine Hilfestellung für mich? (den bestehenden Code füge ich bei)

Sub CreateOtherUserAppointment()
    Dim objApp As Outlook.Application
    Dim objNS As Outlook.Namespace
    Dim objFolder As Outlook.MAPIFolder
    Dim objDummy As Outlook.MailItem
    Dim objRecip As Outlook.Recipient
    Dim objAppt As Outlook.AppointmentItem
    Dim strMsg As String
    Dim strName As String
    On Error Resume Next
     
    ' ### name of person whose Calendar you want to use ###  
    strName = "test"  
     
    Set objApp = CreateObject("Outlook.Application")  
    Set objNS = objApp.GetNamespace("MAPI")  
    Set objDummy = objApp.CreateItem(olMailItem)
    Set objRecip = objDummy.Recipients.Add(strName)
    objRecip.Resolve
    If objRecip.Resolved Then
        On Error Resume Next
        Set objFolder = _
          objNS.GetSharedDefaultFolder(objRecip, _
            olFolderCalendar)
        If Not objFolder Is Nothing Then
            Set objAppt = objFolder.Items.Add
            If Not objAppt Is Nothing Then
                With objAppt
                    .Subject = "Test Appointment"  
                    .Start = Date
                    .AllDayEvent = True
                    .Save
                End With
            End If
        End If
    Else
        MsgBox "Could not find " & Chr(34) & strName & Chr(34), , _  
               "User not found"  
    End If
 
    Set objApp = Nothing
    Set objNS = Nothing
    Set objFolder = Nothing
    Set objDummy = Nothing
    Set objRecip = Nothing
    Set objAppt = Nothing
End Sub



Vielen Dank schon jetzt...

Armin

Content-Key: 324245

Url: https://administrator.de/contentid/324245

Printed on: April 20, 2024 at 16:04 o'clock

Mitglied: 131381
131381 Dec 18, 2016 updated at 19:42:20 (UTC)
Goto Top
Moin,
dazu musst du uns sagen wo genau der Kalender angelegt worden ist (Als Unterordner des Standardkalenders, oder direkt im Root der anderen Mailbox oder in anderen Ordnern).
Am einfachsten machst du uns einen Screenshot der detaillierten Baumansicht des anderen Outlook-Accounts.

Ein Beispiel wen der andere Kalender ein Unterordner des Default-Kalenders ist
Set objFolder = objNS.GetSharedDefaultFolder(objRecip, olFolderCalendar).Folders.Item("MeinAndererKalender")  
Zweites Beispiel wenn der Kalender im Root des Stores liegt
Set objFolder = objNS.GetSharedDefaultFolder(objRecip, olFolderCalendar).Parent.Folders.Item("MeinAndererKalender")  
Die Intellisense zeigt dir den Weg, das Prinzip ist immer gleich.
Jeder Ordner hat ein Folders Objekt welcher die Unterordner des jeweiligen Ordners enthält usw.

Das der User dafür über genügend Rechte in der Mailbox haben muss ist denke ich klar.

Gruß mik
Member: Armin-K
Armin-K Dec 22, 2016 at 14:48:48 (UTC)
Goto Top
Hallo Mik,

ganz lieben Dank für Deine Hilfe! Frage der Rechte ist wirklich klar, sind aber auch entsprechend gesetzt. Ich habe Deine Beispiele (für mich war der zweite Hinweis der Wichtigere) in meinem Code genutzt. Jetzt muss nur noch getestet werden und dann ist alles gut. Trotzdem aber schon jetzt .... toll + für mich eine große Hilfe, ....

Viele Grüße aus der Lüneburger Heide, eine endgültige Rückmeldung folgt!

Armin