katzenm
Goto Top

Outlook Termin Serie x-ter Arbeitstag

Monatliche Terminserie für fünften, sechsten usw. Arbeitstag anlegen.

Hallo,
leider bietet Outlook nur die Auswahl den ersten bis vierten oder letzten Arbeitstag im Monat für eine Terminserie auszuwählen. Wie kann ich dies auf den fünften, sechsten usw. erweitern? -- Anfrage besteht für den sechsten Arbeitstag.
Kzm

Content-Key: 124646

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

Printed on: April 26, 2024 at 02:04 o'clock

Member: 4mB3r197
4mB3r197 Dec 22, 2009 at 14:06:38 (UTC)
Goto Top
Eine Lösung zu dieser Frage - wenn auch recht umständlich - findet sich hier:

http://www.outlook-user.de/blog/index.php/hier-wird-ihnen-geholfen/2008 ...
Member: katzenm
katzenm Jan 14, 2010 at 13:40:11 (UTC)
Goto Top
Danke 4mB3r197.

Umständlich, aber wenigstens ein Weg. Inzwischen habe ich mich durch VBA gekämpft und es ist folgender Code entstanden:
(Er erzeugt an den entsprechenden Terminen Einzeltermine. Eine Lösung wie ich das nun als Serientermin bastel steht prizipiell auch schon, mangels Zeit noch nicht umgesetzt. Hierzu verschiebt man die Termine einer Serie nachträglich.)

Option Explicit

' Variablen die evtl. in Sub angepasst werden müssen:
Dim sSubject As String
Dim sLocation As String
Dim iDuration As Integer
Dim iXth As Integer
Dim iAmount As Integer

Sub te_Arbeitstag()
xteWorkd_singledates
End Sub

' berechne x-ten Arbeitstag beginnend beim jetztigen Monat für iAmount Monate
Private Sub xteWorkd_singledates()
Dim oDate As Date
Dim oDateTmp As Date
Dim iMonth As Integer
Dim iDay As Integer
Dim iYear As Integer

' Initialisierung - 1. des derzeitigen Monats
iDay = 1
iMonth = Month(Now)
iYear = Year(Now)
oDate = CDate("1." & iMonth & "." & iYear)

' nachfolgende Variablen anpassen:
sSubject = "Auswertung Emails"
sLocation = "Mein Büro"
iDuration = 90
iXth = 6
iAmount = 2 ' 12 ' Anzahl der Monate für die ein Termin erstellt wird

' Variablen-Ini
Dim i As Integer
Dim myItem As AppointmentItem
Dim myOlApp As Outlook.Application
Dim objRecPatt As RecurrencePattern

Set myOlApp = GetObject(, "Outlook.Application")

For i = 0 To iAmount - 1
Set myItem = myOlApp.CreateItem(olAppointmentItem)
myItem.MeetingStatus = olMeeting
myItem.Subject = sSubject
myItem.Location = sLocation

oDateTmp = DateAdd("m", i, oDate) ' 1. des jeweiligen Monats
getXthWorkingDay oDateTmp, iXth

myItem.Start = CStr(oDateTmp) & " 10:30:00 AM"
myItem.Duration = iDuration
myItem.Send
Next i

End Sub

Private Sub getXthWorkingDay(oDate, iX)
Dim a
Dim oDateTmp
Dim oDayOfWeek

For a = 1 To iX
oDateTmp = oDate
oDayOfWeek = Format(oDateTmp, "dddd")
'MsgBox (oDayOfWeek & " " & oDateTmp)
If a = 1 Then
Select Case oDayOfWeek
Case "Samstag"
oDateTmp = oDateTmp + 2 'Springt auf den Montag
Case "Sonntag"
oDateTmp = oDateTmp + 1 'Springt auf den Montag
Case Else
' oDateTmp = oDateTmp ' Bleibt
End Select
Else
Select Case oDayOfWeek
Case "Freitag"
oDateTmp = oDateTmp + 3 'Springt auf den Montag
Case "Samstag"
oDateTmp = oDateTmp + 2 'Springt auf den Montag
Case Else
oDateTmp = oDateTmp + 1 'Springt auf Mo, Do, Mi, Do oder Freitag
End Select
End If
oDate = oDateTmp
'Wochentagist2 = Format(Datumist2, "dddd")
'MsgBox (Wochentagist1 & " " & Datumist1 & Chr(13) & Wochentagist2 & " " & Datumist2)
Next a
End Sub

' Wird für die Aufgabe nicht benötigt. Generiert das Datum für den 6. Tag des Monats
Private Sub create6thDayDate()
Dim myItem
Dim myOlApp As Outlook.Application
Dim objRecPatt As RecurrencePattern

Set myOlApp = GetObject(, "Outlook.Application")
Set myItem = myOlApp.CreateItem(olAppointmentItem)
myItem.MeetingStatus = olMeeting
myItem.Subject = "Strategy Meeting"
myItem.Location = "Conference Room B"
myItem.Start = #9/24/2009 1:30:00 PM#
myItem.Duration = 90

' objAppt can be solitary, an originator, or a recurrence
Set objRecPatt = myItem.GetRecurrencePattern
With objRecPatt
' set recurrence pattern properties as desired
.RecurrenceType = 2 ' CdoRecurTypeMonthlyNth
.PatternStartDate = Now
.PatternEndDate = DateAdd("m", 1, .PatternStartDate)
.DayOfMonth = 6
End With
Set myItem = objRecPatt.Parent
With myItem
.Subject = "New subject for entire recurring series"
End With
myItem.Send
End Sub
Member: cuwie.de
cuwie.de Mar 04, 2015 at 12:30:03 (UTC)
Goto Top
Hallo zusammen,

auch wenn das Thema schon etwas älter ist, ist es für mich aktuell gerade sehr interessant geworden.
Offensichtlich (aktuelle Recherche in diversen Foren zum Thema) gibt es auch heute noch keine einfache Möglichkeit in Outlook (2013) einen Serientermin pro Monat an einem festen Tag einzurichten, der sich automatisch auf den davorliegenden Arbeitstag verschiebt, wenn die Serie in einem Monat mal auf einen Wochenend- oder Feiertag fällt.
Hintergrund: Ich muss bis zum 5. Tag eines Monats einen Bericht abgeben. Wenn der 5. aber ein Wochenende ist, muss ich den Bericht natürlich schon früher abgeben.

Das muss ich jetzt leider noch bringen: Ich bin erst seit kurzem in der Outlook-Welt unterwegs, bisher seit ca. 17 Jahren ausschließlich mit Lotus Notes in verschiedenen Versionen und auch in einigen voneinander unabhängigen Unternehmen unterwegs. Und LN kann DAS schon seit vielen Jahren standardmäßig...

In der Zwischenzeit schaue ich mir mal das VBA ein bisschen genauer an, vielleicht gibt es da ja was her für den Anfang.

Viele Grüße

Carsten
Member: cuwie.de
cuwie.de Mar 04, 2015 at 12:48:04 (UTC)
Goto Top
So, mal kurz getestet. Das VBA geht eindeutig in die richtige Richtung, danke dafür! Allerdings ist es nicht sonderlich komfortabel zu bedienen, da man direkt im Code die Eckdaten des Serientermins eingeben muss.
Ich kann den Code zwar einigermaßen lesen, aber leider nicht selbst programmieren. Eine Dialogbox wäre nett...
Member: 4mB3r197
4mB3r197 Mar 08, 2015 at 19:06:54 (UTC)
Goto Top
Und ich bin inzwischen von Outlook zu Notes und kratzte mir bereits wegen vieler Dinge den Kopf, die Notes nicht oder nur irgendwie kann. Aber in Deinem Fall scheint's mal umgekehrt zu sein.