bustue
Goto Top

Mit Excel Privaten Termin an Outlook übergeben

Hallo Insider,
ich versuche in folgenden Skript die Class (PRIVATE bzw. PUBLIC) mit zu übergeben. Leider komme ich nicht weiter.

Sub Outlook()
On Error Resume Next
Dim sheet As Worksheet, rngStart As Range, rngEnd As Range, cell As Range
Set objOL = CreateObject("Outlook.Application")  
Set objCal = objOL.Session.GetDefaultFolder(9)
Set sheet = Worksheets(1)
Set rngStart = sheet.Range("A1")  
Set rngEnd = rngStart.End(xlDown)
counter = 0
For Each cell In sheet.Range(rngStart, rngEnd)
strSubject = cell.Text
strStartDate = cell.Offset(0, 1).Text
strStartTime = cell.Offset(0, 2).Text
strEndDate = cell.Offset(0, 3).Text
strEndTime = cell.Offset(0, 4).Text
boolAllDay = cell.Offset(0, 5).Value
strCategory = cell.Offset(0, 7).Text
strComment = cell.Offset(0, 6).Text
strClass = cell.Offset(0, 8).Text
strLocation = cell.Offset(0, 9).Text
strErinnerung = cell.Offset(0, 10).Text

'Eventuelles Duplikat des Termins finden ---------  
Dim dupe_item As Object, itm As Object
If boolAllDay Then
Set dupe_item = objCal.Items.Restrict("[Start] = """ & Format(strStartDate, "ddddd") & " 12:00 AM"" AND [END] = """ & Format(DateAdd("d", 1, DateValue(strEndDate)), "ddddd") & " 12:00 AM"" AND [Subject] = '" & strSubject & "'")  
Else
Set dupe_item = objCal.Items.Restrict("[Start] = """ & Format(strStartDate & " " & strStartTime, "ddddd h:nn AMPM") & """ AND [END] = """ & Format(strEndDate & " " & strEndTime, "ddddd h:nn AMPM") & """ AND [Subject] = '" & strSubject & "'")  
End If
Set itm = dupe_item.GetFirst
Set olApp = IIf(itm Is Nothing, objCal.Items.Add(1), itm)
'--------------------------  

With olApp

.Subject = strSubject
.Location = strLocation
.ReminderSet = True
.ReminderMinutesBeforeStart = strErinnerung
'.Duration = "60"  
If strCategory <> "" Then  
.Categories = strCategory
End If
.Body = strComment
If boolAllDay = True Then
.AllDayEvent = True
If IsDate(strStartDate) Then
.Start = DateValue(strStartDate)
.End = DateAdd("d", 1, DateValue(strStartDate))  
.Save
counter = counter + 1
Else
MsgBox "Termin mit dem Betreff: '" & strSubject & "' in Zeile " & cell.Row & " hat ungültige oder fehlende Zeitangaben", vbExclamation  
End If
Else
.AllDayEvent = False
If IsDate(strStartDate) And IsDate(strEndDate) And IsDate(strStartTime) And IsDate(strEndTime) Then
.Start = DateValue(strStartDate) & " " & TimeValue(strStartTime)  
.End = DateValue(strEndDate) & " " & TimeValue(strEndTime)  
.Save
counter = counter + 1
Else
'MsgBox "Termin mit dem Betreff: '" & strSubject & "' in Zeile " & cell.Row & " hat ungültige oder fehlende Zeitangaben", vbExclamation  
End If
End If
End With
Next
Set objOL = Nothing
MsgBox counter & " Termin(e) wurden erstellt!", vbInformation  
'Dim ZeilenLoeschen()  
'sheet.Rows("2:20").Delete  
End Sub

Hat einer eine Lösung?
Danke für Eure Zeit und Hilfe

MfG
Burghard

Content-Key: 438954

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

Ausgedruckt am: 28.03.2024 um 08:03 Uhr

Mitglied: 139374
139374 10.04.2019 aktualisiert um 16:40:51 Uhr
Goto Top
Ich versuche in folgenden Skript die Class (PRIVATE bzw. PUBLIC) mit zu übergeben
Der Satz ist leider zu kurz um zu wissen was du meinst, was soll das hier für einen Sinn ergeben??

Die Suche dazu liefert dir übrigens folgende Lösung als Download:
Mit Excel einen Termin in Outlook erzeugen

p.s. Wenn man sowas schon zum Großteil kopiert gibt man immer auch die Quelle an!
Mitglied: bustue
bustue 10.04.2019 um 18:11:27 Uhr
Goto Top
Entschuldigung, die Informationen bzw.das Skript habe ich hier aus dem Forum
Mitglied: bustue
bustue 10.04.2019 aktualisiert um 18:29:40 Uhr
Goto Top
Das Skript funktioniert perfekt, leider kann ich nicht den Status Privat oder Öffentlich mit übergeben.
Das Outlook-Feld hierfür heiß ja CLASS:
Ich habe, wie im Skript Zeile 19 zusehen ist, versucht dies hinzubekommen, funktioniert leider nicht.
Hoffe mein Anliegen ist nun verständlicher.
Mitglied: 139374
Lösung 139374 10.04.2019 aktualisiert um 18:34:55 Uhr
Goto Top
Zitat von @bustue:

Das Skript funktioniert perfekt, leider kann ich nicht den Status Privat oder Öffentlich nicht mit Übergeben.
Das Outlook-Feld hierfür ist CLASS:
FALSCH!! Class ist der Objekttyp.
Das Feld dafür ist Sensivity und ist mit einer Konstante zu versehen
https://docs.microsoft.com/de-de/office/vba/api/outlook.appointmentitem. ...

Ich habe, wie im Skript Zeile 19 versucht dies hinzubekommen, funktioniert leider nicht.
Erstens weil du zwar eine Variable dafür deklarierst aber diese nirgendwo im Appointmentitem zuweist. Außerdem weiß hier niemand was du in die Zelle für den Status tatsächlich rein schreibst.

Beispiel wenn in der Zelle "Privat" stehen würde
.Sensivity = IIF(strClass = "Privat",2,0)  
Bspw. in Zeile 35 einfügen.
Wenn dann was anderes drin steht wird die Sensivity automatisch auf Normal gesetzt. Willst du alle weiteren Stati verfügbar machen kannst du das stattdessen mit einem Select Case Konstrukt abfackeln.
Mitglied: bustue
bustue 10.04.2019 um 18:35:50 Uhr
Goto Top
In die Zelle wird PRIVATE oder PUBLIC hinterlegt. Mein Problem wie weise ich dies im Appointmentitem zu.
Mitglied: bustue
bustue 10.04.2019 um 18:37:19 Uhr
Goto Top
Besten Dank für die schnelle kompetente Hilfe.