Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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
Termin in Outlook
30.12.2021 10:39:17
Detlef
Hallo,
ich benötige bitte ein wenig Unterstützung. Ich möchte einen Termin in Outlook hinterlegen. Dafür habe ich hier schon einiges gefunden. Das Problem ist das der Termin in einen bestimmten Kalender hinterlegt werden soll (Privat). Der Termin soll ganztägig sein.
Das habe ich bis jetzt.

Sub Terminanlegenabnahme()
Dim OutApp As Object 'Dim OutApp As Outlook.Application
Dim apptOutApp As Object
Application.ScreenUpdating = False
Sheets("OV").Range("BI17").Select
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.GetNamespace("Mapi").GetDefaultFolder(9).Items.Add
With apptOutApp
.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 00:00"
.Subject = Sheets("OV").Range("BJ24").Value
.Body = Sheets("OV").Range("BJ19").Value
.Location = Sheets("OV").Range("BJ26").Value
.Categories = "Besprechnung"
.Duration = "1440"
.ReminderMinutesBeforeStart = 5
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
ActiveCell.Offset(1, 0).Select
Application.ScreenUpdating = True
Set apptOutApp = Nothing 'Variablen leeren
Set OutApp = Nothing 'Variablen leeren
Range("C3").Select
MsgBox "Es wurde für Sie im Qutlookkaldener ein Termin auf den heutigen Tag hinterlegt!", vbInformation
Vielen Dank
Detlef

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Termin in Outlook
02.01.2022 22:05:39
Yal
Hallo Detlef,
ich würde vorschlagen, die Outlook-Bibliothek in "Early Binding" anzubinden: unter VB-Editor, "Extras", "Verweise...", suche "Microsoft Outlook 16.0 Object Library"
CreateObject(...) ist die "Late Binding"-Lösung. Details findest im Inet. Late Binding macht unter Excel kein Sinn.
Mit Early Bindiung kannst Du deine Variablen so definieren:

Dim OutApp As Outlook.Application
Dim apptOutApp As Outlook.AppointmentItem
Dann kommt mit Strg+Leertaste oder automatisch nach dem Punkt in dem With-Bereich eine Liste von Eigenschaft und Methode der AppointmentItem-Objekt.
Darin findest Du die Eigenschaft "AllDayEvent", die Du auf = True (vor dem Save) setzst,
und die Eigenschaft Sensivity, die Du auf olPrivate setzst.
Die Liste der Eigenschaften/Methode kannst Du dank Early Binding auch im Objekt-Katalog finden (F2 oder Ansicht, Objekt-Katalog), dann nach appointment suchen und ein bischen neugierig sein ;-)
Dein Code sieht am Ende so aus:

Sub Terminanlegenabnahme()
Dim OutApp As Outlook.Application
Dim AI As Outlook.AppointmentItem
Application.ScreenUpdating = False
Set AI = OutApp.GetNamespace("Mapi").GetDefaultFolder(9).Items.Add
With Sheets("OV")
AI.Start = Format(.Range("BI17").Value, "DD.MM.YYYY 00:00")
AI.Subject = .Range("BJ24").Value
AI.Body = .Range("BJ19").Value
AI.Location = .Range("BJ26").Value
.Range("BI18").Select
End With
AI.Duration = "1440"
AI.Categories = "Besprechnung"
AI.ReminderMinutesBeforeStart = 5
AI.ReminderPlaySound = True
AI.ReminderSet = True
AI.AllDayEvent = True
AI.Sensitivity = olPrivate
AI.Save
Application.ScreenUpdating = True
Range("C3").Select
MsgBox "Es wurde für Sie im Outlookkalender ein Termin auf den heutigen Tag hinterlegt!", vbInformation
End Sub
With wird benutzt um wiederholung von langen Bezeichner zu vermeiden. Bei der Name der AppointmentItem-Objekt wählst Du selber, wie lang der Name ist. Nimmst Du ein kurzen Namen, ist es dann unproblematisch diese zu wiederholen (vor allem, wenn er stet am Anfang der Zeile ist). Sheets("OV") ist wiederum ... zu lang ;-)
Achte auf das Einrücken. Es erleichtert nicht nur das Lesen sondern auch das Entdecken von Fehler.
VG
Yal
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige