Mit Excel einen Termin in Outlook erzeugen
Liebes Forum,
leider finde ich trotz zahlreicher vielversprechender Ansätze hier im Forum keine funktionierende Lösung. Folgende Aufgabenstellung:
Ich möchte mit einem Makro aus Excel in einen zu bestimmenden Kalender (es sind zwei Exchange-Konten verfügbar) Termine exportieren. Die Excel Tabelle hätte folgenden Aufbau (siehe Bild). Ich hatte ursprünglich die Idee des Export in eine *.csv-Datei, scheitere aber auch dort mit den unterschiedlichen Formaten. Die Makrolösung wäre sicher am elegantesten...
Könnte mir jemand weiterhelfen bitte....
Windows 8.1
Office 2013
[[i
leider finde ich trotz zahlreicher vielversprechender Ansätze hier im Forum keine funktionierende Lösung. Folgende Aufgabenstellung:
Ich möchte mit einem Makro aus Excel in einen zu bestimmenden Kalender (es sind zwei Exchange-Konten verfügbar) Termine exportieren. Die Excel Tabelle hätte folgenden Aufbau (siehe Bild). Ich hatte ursprünglich die Idee des Export in eine *.csv-Datei, scheitere aber auch dort mit den unterschiedlichen Formaten. Die Makrolösung wäre sicher am elegantesten...
Könnte mir jemand weiterhelfen bitte....
Windows 8.1
Office 2013
[[i
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 230045
Url: https://administrator.de/contentid/230045
Ausgedruckt am: 25.11.2024 um 20:11 Uhr
15 Kommentare
Neuester Kommentar
Hallo Armin-K,
das ist kein Problem. Der folgende Code ist an deine abgebildete Tabelle angepasst. Er erstellt für alle Zeilen der Tabelle die entsprechenden Termine. Was angepasst werden muss ist zum einen in Zeile 6 das Worksheet auf dem sich deine Tabelle befindet und zum anderen der Verweis zum entsprechendem Kalender in Zeile 5. In der jetztigen Ausführung werden die Termine im Standardkalender abgelegt. Hierzu ist folgendes zu Erläutern:
Wenn dein Kalender z.B. im Exchange-Store mit dem Namen armin@domain.de vom Root ausgesehen in einem Unterordner namens Dienstkalender liegt muss die Zeile 5 des Scriptes so lauten:
liegt dein Kalender als Unterordner im Standardkalenderordner dann lautet diese Zeile so:
Für die Kategorien sollte in deiner Tabelle nicht die Farbe, sondern der richtige Name der Kategorie verwendet werden.
Hierzu auch noch das Demo-Sheet dazu.
Denke das sollte dich deinem Ziel näher bringen...
Grüße Uwe
das ist kein Problem. Der folgende Code ist an deine abgebildete Tabelle angepasst. Er erstellt für alle Zeilen der Tabelle die entsprechenden Termine. Was angepasst werden muss ist zum einen in Zeile 6 das Worksheet auf dem sich deine Tabelle befindet und zum anderen der Verweis zum entsprechendem Kalender in Zeile 5. In der jetztigen Ausführung werden die Termine im Standardkalender abgelegt. Hierzu ist folgendes zu Erläutern:
Wenn dein Kalender z.B. im Exchange-Store mit dem Namen armin@domain.de vom Root ausgesehen in einem Unterordner namens Dienstkalender liegt muss die Zeile 5 des Scriptes so lauten:
Set objCal = objOL.Session.Stores.Item("armin@domain.de").GetRootFolder.Folders.Item("Dienstkalender")
Set objCal = objOL.Session.Stores.Item("armin@domain.de").GetDefaultFolder(9).Folders.Item("Dienstkalender")
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)
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
Denke das sollte dich deinem Ziel näher bringen...
Grüße Uwe
kein Problem ist nur eine Fingerübung , alle Wünsche sind oben im Code korrigiert und umgesetzt. Das mit dem "AllDayEvent" hatte ich nicht nachgeprüft, sorry - dazu musste man das Enddatum auf den Folgetag 12:00 AM setzen, dann kommt der Termin richtiger weise in den oberen Bereich.
Viel Erfolg
Grüße Uwe
Viel Erfolg
Grüße Uwe
Hallo Ralf, Willkommen auf Administrator.de!
Danke für deine Anfrage. Normalerweise sollten alte Threads im Interesse des TOs nicht aufgewärmt, sondern eine neue Frage erstellt oder via PM angefragt werden. Das nur nebenbei, aber ich mach da mal eine Ausnahme weil du hier neu bist
Kein Problem, wenn du eine weitere Spalte für den Kommentar in dem Dokument hinten dran setzt dann kannst du das mit folgendem Code realisieren. Bevor der Termin neu erstellt wird überprüft das Skript ob in dem angegebenen Zeitraum ein Termin mit gleicher Start und Endzeit, und gleichem Subject existiert. Passt ein Termin auf diese Kriterien werden seine Eigenschaften nur angepasst anstatt ein neuer Termin erstellt.
-edit- Für diejenigen die alle Eigenschaften ändern möchten ohne das ein Duplikat erstellt wird sollten sich das Demo-Sheet
Grüße Uwe
Danke für deine Anfrage. Normalerweise sollten alte Threads im Interesse des TOs nicht aufgewärmt, sondern eine neue Frage erstellt oder via PM angefragt werden. Das nur nebenbei, aber ich mach da mal eine Ausnahme weil du hier neu bist
Zitat von @Ralfrun:
Vielen Dank für das super Makro. Ich brauche nur noch zwei Kleinigkeiten. Wie stelle ich es ein, dass doppelte Einträge ersetzt werden und kann ich noch eine Bemerkung zu dem jeweiligen Termin erstellen.
Vielen Dank für das super Makro. Ich brauche nur noch zwei Kleinigkeiten. Wie stelle ich es ein, dass doppelte Einträge ersetzt werden und kann ich noch eine Bemerkung zu dem jeweiligen Termin erstellen.
Kein Problem, wenn du eine weitere Spalte für den Kommentar in dem Dokument hinten dran setzt dann kannst du das mit folgendem Code realisieren. Bevor der Termin neu erstellt wird überprüft das Skript ob in dem angegebenen Zeitraum ein Termin mit gleicher Start und Endzeit, und gleichem Subject existiert. Passt ein Termin auf diese Kriterien werden seine Eigenschaften nur angepasst anstatt ein neuer Termin erstellt.
-edit- Für diejenigen die alle Eigenschaften ändern möchten ohne das ein Duplikat erstellt wird sollten sich das Demo-Sheet
im letzten meiner Kommentar dieses Threads herunterladen
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 ---------
Set allItems = objCal.items
allItems.Sort "[Start]"
' Ganztagestermin oder normaler Termin unterscheiden
If boolAllDay = True Then
' Filtere Termine nach Ganztagesevents zu dieser Zeit und dem Betreff
Set dupe_item = allItems.Restrict("[Start]=""" & Format(strStartDate, "ddddd hh:nn") & """ AND [END]= """ & Format(DateAdd("d", 1, DateValue(strEndDate)), "ddddd hh:nn") & """ AND [Subject] = '" & strSubject & "' AND [AllDayEvent] = True")
Else
' Filtere normale Termine zu dieser Zeit und dem Betreff
Set dupe_item = allItems.Restrict("[Start]=""" & Format(strStartDate & " " & strStartTime, "ddddd hh:nn") & """ AND [END]= """ & Format(strEndDate & " " & strEndTime, "ddddd hh:nn") & """ AND [Subject] = '" & strSubject & "' AND [AllDayEvent] = False")
End If
' hole den ersten passenden Termin wenn er exisitiert
Set itm = dupe_item.GetFirst
If itm Is Nothing Then
' erstelle neuen Termin wenn kein Duplikat exisitert
Set olApp = objCal.items.Add(1)
Else
' verwende den gefundenen Termin
Set olApp = itm
End If
'--------------------------
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
set olApp = Nothing
Next
Set objOL = Nothing
MsgBox counter & " Termin(e) wurden erstellt!", vbInformation
End Sub
Hallo Uwe
Entschuldige das Aufwärmen. Vielen Dank für die schnelle Antwort.
Leider schreibt er auch weiterhin neu Termine in den Kalender und die Bemerkung wird auch nicht übertragen.
Zeile 05 gibt einen SyntaxFehler!
Ich habe
Set objCal = Set objCal = objOL.Session.GetDefaultFolder(9) ersetzt durch
Set objCal = objOL.Session.GetDefaultFolder(9)
Kannst du es mal testen?
Gruss
Ralf
Entschuldige das Aufwärmen. Vielen Dank für die schnelle Antwort.
Leider schreibt er auch weiterhin neu Termine in den Kalender und die Bemerkung wird auch nicht übertragen.
Zeile 05 gibt einen SyntaxFehler!
Ich habe
Set objCal = Set objCal = objOL.Session.GetDefaultFolder(9) ersetzt durch
Set objCal = objOL.Session.GetDefaultFolder(9)
Kannst du es mal testen?
Gruss
Ralf
Zitat von @Ralfrun:
Leider schreibt er auch weiterhin neu Termine in den Kalender und die Bemerkung wird auch nicht übertragen.
Zeile 05 gibt einen SyntaxFehler!
Ich habe
Set objCal = Set objCal = objOL.Session.GetDefaultFolder(9) ersetzt durch
Set objCal = objOL.Session.GetDefaultFolder(9)
Das war ein Copy n' paste Fehler in den Beitrag, habe ich oben korrigiertLeider schreibt er auch weiterhin neu Termine in den Kalender und die Bemerkung wird auch nicht übertragen.
Zeile 05 gibt einen SyntaxFehler!
Ich habe
Set objCal = Set objCal = objOL.Session.GetDefaultFolder(9) ersetzt durch
Set objCal = objOL.Session.GetDefaultFolder(9)
Kannst du es mal testen?
Habe ich natürlich beides vor dem Posten ohne Probleme auf einem System mit deutschen Datumsangaben getestet!Du hast sicher die zusätzliche Spalte für das Kommentar hinter der Kategoriespalte vergessen.
Weitere Postings dann bitte via PM, Merci.
Hallo,
KLASSE makro. Funktioniert einwandfrei.
Im ersten Beitrag steht was über den zu nutzenden Kalender. Nach meiner Standardinstallation habe ich einen persönlichen Kalender sowie einen mit meiner Mailadresse. Das Makro legt den Eintrag in den persönlichen Kalender. Wie stelle ich es um das in den Kalender mit der Mailadresse der Eintrag erfolgt ??
Gruß Marcus
KLASSE makro. Funktioniert einwandfrei.
Im ersten Beitrag steht was über den zu nutzenden Kalender. Nach meiner Standardinstallation habe ich einen persönlichen Kalender sowie einen mit meiner Mailadresse. Das Makro legt den Eintrag in den persönlichen Kalender. Wie stelle ich es um das in den Kalender mit der Mailadresse der Eintrag erfolgt ??
Gruß Marcus
Das Makro legt den Eintrag in den persönlichen Kalender. Wie stelle ich es um das in den Kalender mit der Mailadresse der Eintrag erfolgt ??
Hallo Marcus,wenn du damit meinst das dein Kalender als Default-Kalender in einem anderen Outlook Store liegt macht man das folgendermaßen
set objCal = objOL.Session.Stores.Item("user@domain.de").getDefaultFolder(9)
set objCal = objOL.Session.Stores.Item("Name des Stores").GetRootFolder.Folders.Item("user@domain.de")
steht aber auch schon in meinem ersten Kommentar ...
Aber deine Aussage ist leider zu unpräzise um dir genau das passende zu liefern.
Ein kurzer Screenshot der Ordneransicht(wichtig, nicht die Kalenderansicht!) vereinfacht das ganze erheblich.
Grüße Uwe
Hallo,
die erste Codezeile hat direkt den richtigen Effekt erzielt. Danke dafür.......
Beim ganzen rumprobieren ist mir aufgefallen das die Einträge ohne Ort erfolgen.
In anderen Threads zum Thema bin ich dann auf das Stichwort "Location" gestossen welches in den Codes eingebaut war. Leider jedoch immer in Einzelzeilen und dann für mich nicht mehr umsetzbar in diesen Code.
Kannst du evtl. eine Ortsangabe implementieren ??
Danke schonmal für deine Mühen vorab.
Gruß Marcus
die erste Codezeile hat direkt den richtigen Effekt erzielt. Danke dafür.......
Beim ganzen rumprobieren ist mir aufgefallen das die Einträge ohne Ort erfolgen.
In anderen Threads zum Thema bin ich dann auf das Stichwort "Location" gestossen welches in den Codes eingebaut war. Leider jedoch immer in Einzelzeilen und dann für mich nicht mehr umsetzbar in diesen Code.
Kannst du evtl. eine Ortsangabe implementieren ??
Danke schonmal für deine Mühen vorab.
Gruß Marcus
Ganz einfach eine neue Spalte am Ende für den Ort hinzufügen und dann nach Zeile 20 des ersten Skriptes noch folgendes hinzufügen:
fertig.
p.s. bitte keine weiteren Posts in diesem Thread damit der TO hier nicht weiter belästigt wird. Entweder eine neue Frage erstellen oder mich via PM kontaktieren. Danke.
Grüße Uwe
.Location = cell.Offset(0,7).Value
p.s. bitte keine weiteren Posts in diesem Thread damit der TO hier nicht weiter belästigt wird. Entweder eine neue Frage erstellen oder mich via PM kontaktieren. Danke.
Grüße Uwe
Hallo colinardo,
ich habe diesen älteren Beitrag gelesen und den Code mit Erfolg in eine Excel-Datei womit Urlaubsscheine erstellt werden einbauen können. Habe einen separaten Urlaubsplanung Kalender in Outlook 2007 angelegt, hier werden auch dann alle Termine eingetragen. Diesen Kalender habe ich nun für andere Mitarbeiter freigegeben, so dass diese die den auch mitbenutzen können bzw. sollen.
Nun zu meinem Problem, die Excel-Datei liegt in einem Freigegebenen Laufwerk auf unseren Server.
Also jeder berechtigte Benutzer kann, soll diese Datei zum erstellen von Urlausscheinen nutzen. Nun benötige ich eine Änderung des Codes, sodass die anderen Mitarbeiter die Termine auch in den bei mir befindlichen Urlaubsplanung – Kalender einfügen können.
Hoffe ich habe mich verständlich genug ausgedrückt, und du hast mich verstanden.
VG
QMB-JMD
Hier mal mein verwendeter Code
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).Folders("Urlaubsplanung")
Set sheet = Worksheets(4)
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
strCategory = cell.Offset(0, 7).Text
strComment = cell.Offset(0, 6).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
.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
Dim ZeilenLoeschen()
sheet.Rows("2:20").Delete
End Sub
ich habe diesen älteren Beitrag gelesen und den Code mit Erfolg in eine Excel-Datei womit Urlaubsscheine erstellt werden einbauen können. Habe einen separaten Urlaubsplanung Kalender in Outlook 2007 angelegt, hier werden auch dann alle Termine eingetragen. Diesen Kalender habe ich nun für andere Mitarbeiter freigegeben, so dass diese die den auch mitbenutzen können bzw. sollen.
Nun zu meinem Problem, die Excel-Datei liegt in einem Freigegebenen Laufwerk auf unseren Server.
Also jeder berechtigte Benutzer kann, soll diese Datei zum erstellen von Urlausscheinen nutzen. Nun benötige ich eine Änderung des Codes, sodass die anderen Mitarbeiter die Termine auch in den bei mir befindlichen Urlaubsplanung – Kalender einfügen können.
Hoffe ich habe mich verständlich genug ausgedrückt, und du hast mich verstanden.
VG
QMB-JMD
Hier mal mein verwendeter Code
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).Folders("Urlaubsplanung")
Set sheet = Worksheets(4)
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
strCategory = cell.Offset(0, 7).Text
strComment = cell.Offset(0, 6).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
.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
Dim ZeilenLoeschen()
sheet.Rows("2:20").Delete
End Sub
Da hier immer öfter mal persönliche Anfragen bezüglich dieses Threads kamen habe ich ein zusätzliches Demo-Sheet erstellt das Duplikate auch verhindert wenn man, egal welches Detail des Termins im Excel Sheet ändert (Zeit, Betreff, etc.), weiterhin eine korrekte Zuordnung gegeben ist indem zu jedem Termin die EntryID in Outlook im Excel-Sheet gespeichert wird. Zudem lassen sich in der Spalte "Termin löschen" vorhandene Termine auch wieder aus dem Kalender löschen.
Damit auch keine Fragen mehr zum Thema "Wie kann ich den und den Kalender verwenden ..." kommen ist dort zudem eine Funktion zum Auswählen des Kalenders per Dialog-Picker integriert.
Download gibt's hier:
Grüße Uwe
Damit auch keine Fragen mehr zum Thema "Wie kann ich den und den Kalender verwenden ..." kommen ist dort zudem eine Funktion zum Auswählen des Kalenders per Dialog-Picker integriert.
Download gibt's hier:
CreateAppointments_230045_3.xlsm
Grüße Uwe