Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

[Excel 2016 VBA] Eintragung in bestimmten Outlook Kalender
#1
Moin!

Ich versuche gerade einen Termineintrag über VBA in einen Outlook Kalender einzutragen. Dies funktioniert an sich auch mit folgendem Code:

Code:
Sub Schaltfläche1_Klicken()

'Variablen dimensionieren
Dim oApp As New Outlook.Application
Dim oTermin As Outlook.AppointmentItem
Set oTermin = oApp.CreateItem(olAppointmentItem)

'Termin erstellen
With oTermin
    .Subject = Tabelle1.Range("A2").Value & " " & Tabelle1.Range("B2").Value
    .Start = Tabelle1.Range("D2").Value
    .AllDayEvent = True
    .Body = "Wiedervorlage des Vorgangs " & Tabelle1.Range("B2").Value
    .Save
End With

'Variablen leeren
Set oApp = Nothing
Set oTermin = Nothing

End Sub

Problematik ist jetzt, dass es in einen bestimmten Kalender eingetragen werden muss, jedoch nur in den Profileigenen Kalender eingetragen wird. In Outlook unter Meine Kalender existieren mehrere Kalender und in einen von diesen muss der Eintrag.

Wie bekomme ich es hin, auf diesen bestimmten Kalender zu verweisen? Hinzu kommt, dass der Kalender von einem anderen Eigenständigen Profil in Outlook kommt, ich habe jedoch Vollzugriff darauf.

Bin für jegliche Hilfe dankbar!

Lieber Gruß
Antworten Top
#2
Hallöchen,

lies mal den Thread durch:

Makro-fuer-Massenmutation-im-Kalender
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Moin!

Danke für den hilfreichen Link. Es hapert nur an einer bestimmten Stelle und ich weiß einfach nicht warum.

Code:
Set objCalendar = objNS.Folders("meins@meins.de").Folders("Kalender")
Set objCalendar = objCalendar.Folders("Kalendername")

Wenn ich meine persönliche Mail eingebe wird das objCalendar in der ersten Zeile richtig befüllt. Dann wird aber in der zweiten Zeile der Kalender nicht gefunden. Wie gesagt, es handelt sich um einen für mehrere Personen freigegeben Kalender mit einem eigenen E-Mail Profil. Versuche ich es dann mit der Mail vom Kalenderprofil wird aber schon in der ersten Zeile ein Fehler ausgeworfen.
Lieber Gruß!
Antworten Top
#4
Das Problem mit dem Kalender konnte ich nun selbst beheben, indem ich mir die Daten innerhalb der Objekte angesehen habe und damit herausgefunden habe, dass die freigegeben Kalender über dem eigentlichen Kalender Ordner liegen.

Jetzt ergibt sich noch folgendes Problem. Die Suche nach den vorhandenen Terminen funktioniert schonmal. Leider wird die Eintragung aber nicht in dem Kalender gemacht, in dem sie gemacht werden soll.

Code:
Do While Worksheets("Tabelle1").Cells(Zeile, 1) <> ""

    For Each objItem In objCalendar.Items
        If objItem.Subject = Tabelle1.Range("A" & Zeile).Value & " " & Tabelle1.Range("B" & Zeile).Value Then
            Vorhanden = True
        End If
    Next

    If Vorhanden = False Then
         Set objItem = objApp.CreateItem(olAppointmentItem)
        'Mit dem Kalendereintrag
        With objItem
        'Eigenschaften des Kalendereintrages
        .Subject = Tabelle1.Range("A" & Zeile).Value & " " & Tabelle1.Range("B" & Zeile).Value
        .Start = Tabelle1.Range("D" & Zeile).Value
        .AllDayEvent = True
        .Body = "Wiedervorlage des Vorgangs " & Tabelle1.Range("B" & Zeile).Value
        .Save
        'Ende Mit dem Kalendereintrag
        End With
    End If
    Zeile = Zeile + 1
Loop

Wie bekomme ich den neuen Termin jetzt in den richtigen Kalender?
Lieber Gruß!
Antworten Top
#5
Hallöchen,

ich hab da im verlinkten Thread z.B. irgendwo

For Each objItem In objCalendar.Items

gehabt. Du hast nun

Set objItem = objApp.CreateItem(olAppointmentItem)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#6
Zeig mal erst ein übersicht deiner Outlook folders (Bildschirmfoto)

dass könnte dann so aussehen:


Code:
with createobject("outlook.application").namespace("MAPI").folders(4).folders("INBOX").createitem

end with
Dann wird das neue Item bestimmt im  korrekten Folder gespeichert.

Application.createitem verwendet nur die Defaultfolders.

Schau mal https://www.snb-vba.eu/VBA_Outlook_external_en.html#L_0
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#7
Das waren die richtigen Hinweise! Vielen Dank!

Code:
         Set objItem = objCalendar.Items.Add(olAppointmentItem)

Ein neues Objekt zu den Items des Kalenders hinzuzufügen, war dann die passende Lösung. (Macht ja auch Sinn)
Lieber Gruß!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste