Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eintrag in freigegebenen Kalender

Eintrag in freigegebenen Kalender
03.05.2023 14:59:43
ThomasH

Hallo zusammen,

ich verzweifel irgendwie an Outlook. Ich habe mir hier im Forum einen Code "geklaut" und etwas modifiziert. Ich möchte nicht in meinen Standardkalender in Outlook sondern in einen freigegebenen Gruppenkalender "TestKalender" schreiben.


Sub CreateOtherUserAppointment()
Dim objApp As Object
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
  strName = "Mein Name"
  'Wo setze ich hier den richtigen Kalender an?!
  StrKalender = "TestKalender"
  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
          .Start = Format(Tabelle1.Range("B2").Value, "dd.mm.yyyy") & "08:00"
          .Subject = Tabelle1.Range("B1").Value
          .Duration = "60"
          .Save
        End With
      End If
    End If
  End If
  
  Set objApp = Nothing
  Set objNS = Nothing
  Set objFolder = Nothing
  Set objDummy = Nothing
  Set objRecip = Nothing
  Set objAppt = Nothing

  MsgBox "Die Termine wurden in den Kalender " & StrKalender & " eingetragen!"
End Sub


Der Eintrag klappt ja super mit dem Makro (Late-Binding muss ich noch umstellen), aber nicht im gewünschten Kalender. An welcher Stelle muss ich dem Makro denn den Kalender mitgeben? Oder bin ich mit "GetSharedDefaultFolder" nur auf meinen freigegebenen, aber nicht auf DEN freigegebenen Kalender abgebogen?
Danke vorab für Unterstützung.

Viele Grüße

Thomas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag in freigegebenen Kalender
03.05.2023 16:25:28
Firmus
Hi Thomas,

gehe doch schrittweise in den Code und schaue dir im Überwachungsfenster deine Objekte im Detail an.
Dort solltest du im MAPI-Namespace unter Folders, Defaultstore, u. ä. den Kalendernamen suchen.
Wenn gefunden, würde ich hier per "Set MyFolder ....." aufsetzen um - im ersten Schritt zu lesen, und dann das Schreiben versuchen.

Ich kann der Theorie keine aktuelle Praxis und/oder Beispiele folgen lassen, da ich kein Exchange verfügbar habe - seit ca. 5 Jahren.

Gruß,
Firmus


AW: Eintrag in freigegebenen Kalender
03.05.2023 16:26:43
Firmus
sorry - noch offen vergessen.


AW: Eintrag in freigegebenen Kalender
03.05.2023 17:14:52
ThomasH
Hallo Firmus,

danke für den entscheidenden Hinweis. Ich war eine Folderebene zu flach in der Struktur unterwegs.
Jetzt funktioniert es und sieht auch einfacher aus ;-)

Sub CreateOtherUserAppointment()

    Dim olAppt As Object 'Outlook.AppointmentItem
    Dim olFldr As Object 'Outlook.MAPIFolder
    Dim objOutlook As Object
    Dim objNamespace As Object
    Dim InTFolder1 As Integer
    Dim InTFolder2 As Integer
    Dim InTFolder3 As Integer
    Dim bolCheck As Boolean
    
    Set objOutlook = CreateObject("Outlook.Application")
    Set objNamespace = objOutlook.GetNamespace("MAPI")
    test2 = objNamespace.Folders.Count
    For i = 1 To objNamespace.Folders.Count
        For k = 1 To objNamespace.Folders.Item(i).Folders.Count
            If objNamespace.Folders(i).Folders(k).Name > "" And objNamespace.Folders(i).Folders(k).Name = "Kalender" Then
              InTFolder1 = i
              InTFolder2 = k
              test_i = objNamespace.Folders(i).Folders(k).Name
              For h = 1 To objNamespace.Folders.Item(i).Folders.Item(k).Folders.Count
                If objNamespace.Folders(i).Folders(k).Folders(h).Name > "" And objNamespace.Folders(i).Folders(k).Folders(h).Name = "Test" Then
                  Test_h = objNamespace.Folders(i).Folders(k).Folders(h).Name
                  InTFolder3 = h
                  bolCheck = True
                  GoTo gefunden
                End If
              Next h
            Exit For
            End If
        
        Next k
    Next i
gefunden:
    If bolCheck = True Then
      Set olFldr = objNamespace.Folders(InTFolder1).Folders(InTFolder2).Folders(InTFolder3)
      Set olAppt = olFldr.Items.Add
      With olAppt
        .Start = Format(Tabelle1.Range("B2").Value, "dd.mm.yyyy") & " 08:00"
        .Subject = Tabelle1.Range("B1").Value
        .Duration = "60"
        .Save
      End With
    
      Set olApp = Nothing
      MsgBox "Der Termin wurde in den Kalender eingetragen!"
    Else
      MsgBox "Der Termin wurde NICHT in den Kalender eingetragen!"
    End If
End Sub
Viele Grüße

Thomas


Anzeige
AW: Eintrag in freigegebenen Kalender
03.05.2023 17:16:38
ThomasH
Erledigt. Danke

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige