Mit Excel einen Termin in Outlook erzeugen + löschen alter Einträge
Hallo,
ich bin neu hier und habe in einem Thread von 2015 ("Mit Excel einen Termin in Outlook erzeugen") folgendes super tolles Makro gefunden und installiert.
Dafür schon mal großen Dank an Uwe, funktioniert super!!!
Jetzt möchte ich gerne noch zusätzlich alle Kalendereinträge im Outlookkalender löschen bevor ich die neuen von Excel nach Outlook sende, da dadurch Änderungen auch wirksam werden können. Ich verfüge leider über keine Kenntnisse im Programmieren. Wenn jemand dies bitte in das vorhandene Makro einbauen könnte das wäre super.
Windows7
Office2007
Vielen Dank
Micha
ich bin neu hier und habe in einem Thread von 2015 ("Mit Excel einen Termin in Outlook erzeugen") folgendes super tolles Makro gefunden und installiert.
Sub createAppointments()
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("A2")
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, 6).Text
strComment = cell.Offset(0, 7).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 hh:nn") & """ AND [END] = """ & Format(strEndDate & " " & strEndTime, "ddddd hh:nn") & """ 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
.ReminderSet = False
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
End Sub
Dafür schon mal großen Dank an Uwe, funktioniert super!!!
Jetzt möchte ich gerne noch zusätzlich alle Kalendereinträge im Outlookkalender löschen bevor ich die neuen von Excel nach Outlook sende, da dadurch Änderungen auch wirksam werden können. Ich verfüge leider über keine Kenntnisse im Programmieren. Wenn jemand dies bitte in das vorhandene Makro einbauen könnte das wäre super.
Windows7
Office2007
Vielen Dank
Micha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 348665
Url: https://administrator.de/forum/mit-excel-einen-termin-in-outlook-erzeugen-loeschen-alter-eintraege-348665.html
Ausgedruckt am: 19.04.2025 um 17:04 Uhr
6 Kommentare
Neuester Kommentar

Kalender in Listenansicht umschalten, STRG+A und ENTF drücken, fertig.
Makro
Gruß
Makro
While objCal.Items.Count > 0
objCal.Items(1).Delete
Wend

Einfach erst mal nachdenken! Natürlich nach der Definition von objCal und vor dem Anlegen neuer Termine.
Wir wollen dir ja nicht alles gleich in den Hintern schieben
Wir wollen dir ja nicht alles gleich in den Hintern schieben