Termine von Excel an Outlook senden
Liebe Experten,
ich bitte um Unterstützung. Ich möchte Termine die in einem Excelsheet stehen per Makro an einem definierten Kalender senden. Dabei soll überprüft werden ob dieser Termin schon existiert und ggf nur die Änderungen (keine Duplikate) speichern. Es sollen ganze Tage und kurze Termine möglich sein.
Folgendes habe ich schon auf eurer Seite gefunden. Das funktioniert auch sehr gut, jedoch das mit den Duplikaten hab ich nicht umsetzen können. Bitte um Unterstützung ich bin kein Profi!! DANKE
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).Folders("Werbekalender")
Set sheet = Worksheets(1)
Set rngStart = sheet.Range("A2")
Set rngEnd = rngStart.End(xlDown)
counter = 0
For Each cell In sheet.Range(rngStart, rngEnd)
Set olApp = objCal.items.Add(1)
With olApp
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
.Subject = strSubject
.ReminderSet = False
If strCategory <> "" Then
.Categories = strCategory
End If
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
ich bitte um Unterstützung. Ich möchte Termine die in einem Excelsheet stehen per Makro an einem definierten Kalender senden. Dabei soll überprüft werden ob dieser Termin schon existiert und ggf nur die Änderungen (keine Duplikate) speichern. Es sollen ganze Tage und kurze Termine möglich sein.
Folgendes habe ich schon auf eurer Seite gefunden. Das funktioniert auch sehr gut, jedoch das mit den Duplikaten hab ich nicht umsetzen können. Bitte um Unterstützung ich bin kein Profi!! DANKE
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).Folders("Werbekalender")
Set sheet = Worksheets(1)
Set rngStart = sheet.Range("A2")
Set rngEnd = rngStart.End(xlDown)
counter = 0
For Each cell In sheet.Range(rngStart, rngEnd)
Set olApp = objCal.items.Add(1)
With olApp
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
.Subject = strSubject
.ReminderSet = False
If strCategory <> "" Then
.Categories = strCategory
End If
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 379914
Url: https://administrator.de/forum/termine-von-excel-an-outlook-senden-379914.html
Ausgedruckt am: 28.04.2025 um 03:04 Uhr
12 Kommentare
Neuester Kommentar
Servus,
im Thread etwas weiter unten wo du den Code her hast, hättest du auch dafür die Lösung gefunden ...
Mit Excel einen Termin in Outlook erzeugen
G. @colinardo
im Thread etwas weiter unten wo du den Code her hast, hättest du auch dafür die Lösung gefunden ...
Mit Excel einen Termin in Outlook erzeugen
G. @colinardo
Hi,
als erstes: Benutze bitte Code-Tags! So kann man das kaum lesen.
Dann bitte auch die einzelnen Blöcke einrücken. Also z.B. aus
mache
Das Gleiche mit "For...Next", "With....End With", "Sub ...End Sub" usw.
Verschachtelte Blöcke blockweise einrücken.
E.
Edit:
Sowas gibt es im Web schon zu finden:
Hier z.B.
http://www.vbaexpress.com/forum/showthread.php?54898-Create-Outlook-201 ...
als erstes: Benutze bitte Code-Tags! So kann man das kaum lesen.
Dann bitte auch die einzelnen Blöcke einrücken. Also z.B. aus
If blablabla then
tu was
tu was
tu was
end if
If blablabla then
tu was
tu was
tu was
end if
Verschachtelte Blöcke blockweise einrücken.
E.
Edit:
Sowas gibt es im Web schon zu finden:
Hier z.B.
http://www.vbaexpress.com/forum/showthread.php?54898-Create-Outlook-201 ...
So für dich und die anderen die hier vorbei schauen habe ich das ganze noch etwas vereinfacht. Ich denke das du den Thread zu den Duplikaten einfach missinterpretiert hattest, den die Duplikats-suche war ja mit gewissen Einschränkungen (Zeit,Subject) versehen die du vermutlich übersehen hast.
Mit der zus. Version wird nun eine Zuordnung anhand der EntryID der Termine vorgenommen
Download des Demo-Sheets im Ursprungsbeitrag hier:
Mit Excel einen Termin in Outlook erzeugen
Mit der zus. Version wird nun eine Zuordnung anhand der EntryID der Termine vorgenommen
Download des Demo-Sheets im Ursprungsbeitrag hier:
Mit Excel einen Termin in Outlook erzeugen
Vielleicht mal damit beschäftigen und lesen?
AppointmentItem Object (Outlook)
AppointmentItem Object (Outlook)
Zitat von @Richard4697:
ich hätte noch eine kleine Frage, wenn ich einen Autofilter setze werden Termine bis zum gefilterten Wert an Outlook übertragen. Wie können nur die gefilterten Termine übertragen werden?
Mit AutoFilter kannst du es jetzt auch nutzen, kleine Anpassung im oben verlinkten Sheet ist mit eingebaut (ein Anhängen von ich hätte noch eine kleine Frage, wenn ich einen Autofilter setze werden Termine bis zum gefilterten Wert an Outlook übertragen. Wie können nur die gefilterten Termine übertragen werden?
.SpecialCells(xlCellTypeVisible)
an den Range der Schleife reichte da aus).Grüße Uwe
Danke im Voraus für eure Hilfe Richy
Danke sagen darfst du immer hier Und bitte dann den Beitrag auch noch auf gelöst setzen, und Lösungen markieren. Merci.