Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Outlook Termin

Outlook Termin
28.05.2020 16:58:37
Demmerling
Hallo,
ich bin noch recht unerfahren mit VBA, habe mir aber schon einige Tutorials angesehen und das Netz nach meinem Problem durchsucht. Ich möchte aus Excel heraus einen Termin in Outlook erstellen.
Quellcode:
Dim obj_Outlook, obj_Calender, obj_Appointment, obj_Window As Object
Set obj_Outlook = CreateObject("Outlook.Application")
Set obj_Calender = obj_Outlook.session.GetDefaultFolder(9)
Set obj_Appointment = obj_Calender.Items.Add(1)
Set obj_Window = obj_Outlook.ActiveWindow
With obj_Appointment
.Subject = "Betreff"
.Body = "Textkörper"
.Location = "Ort"
.Display True
End With
Set obj_Window = Nothing
Set obj_Outlook = Nothing
Set obj_Calender = Nothing
Set obj_Appointment = Nothing

...so weit, so gut...
Nachdem das Fenster für den Termin sich öffnet, ist mein Outlook blockiert.
Ich kann keinen anderen Termin parallel öffnen und auch nicht auf meinen Posteingang zugreifen.
Erst wenn ich den Termin schließe (mit/ohne speichern) kann ich Outlook wieder ganz normal bedienen?!
mfg
Matthias
Office 365
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook Termin
28.05.2020 17:32:36
volti
Hallo Matthias,
wenn Du nur einen Termin einstellen möchtest, hier eine Alternative.
Das Beispiel stellt einen Termin für den nächsten Tag 09:00 Uhr ein.Das kannst Du ja entspechend anpassen.
Zu Deinem Code kann ich so nicht groß was sagen. Irgendwie ist da doch auch gar keine Zeit angegeben...

Sub OL_Termin_Einstellen()
'Erstellt einen Outlook-Termin
 With CreateObject("Outlook.Application").CreateItem(1)
    .Start = Format((Date + 1), "dd.mm.yyyy") & " 09:00"
    .Duration = "60"
    .Subject = "Betreff"
    .body = "Textkörper"
    .Location = "Ort"
    .Recipients.Add "Ich, Karl-Heinz"
    .ReminderPlaySound = True
    .ReminderSet = True
    .Save
 End With
End Sub
viele Grüße
Karl-Heinz

Anzeige
AW: Outlook Termin
29.05.2020 09:13:31
Demmerling
Hallo Karl-Heinz,
vielen Dank für die Info, aber das Problem besteht weiter hin.
Das Problem ist, dass ich den Termin vor dem Speichern noch bearbeiten möchte und nicht direkt .Save, sondern .Display True setze. D.h. der Termin ist eingeblendet/offen.
mfg
Matthias
AW: Outlook Termin
29.05.2020 10:34:44
volti
Hallo Matthias,
ich vermute mal, dass das mehrfache Öffnen von Terminen nicht geht in Outlook.
Versuche doch mal ein Terminfenster manuell zu öffnen und dann ein zweites parallel zu öffnen. Wenn das manuell auch nicht funktioniert, wird es per VBA auch nicht gehen....
VG KH
Anzeige
AW: Outlook Termin
29.05.2020 10:49:27
Demmerling
Hallo,
wenn ich einen neuen Termin manuell öffne, dann kann ich parallel andere Termine und auch Mails öffnen und bearbeiten. :-(
AW: Outlook Termin
29.05.2020 12:37:20
Demmerling
Hi, ich habe den Fehler gefunden. Hinter .Display darf kein True stehen.
Trotzdem. VIELEN DANK für den support.
mfg
Matthias
O365
AW: Outlook Termin
29.05.2020 12:44:15
volti
Glückwunsch, wieder was gelernt.
Hätte ich allerdings auch drauf kommen müssen, bei Mails schreibe ich ja auch immer nur .Display ohne true.
Manchmal hat man 'nen Brett vor'm Kopf.
VG KH
Anzeige
AW: Outlook Termin
03.06.2020 11:01:54
Demmerling
Hi,
leider ergibt sich dadurch ein neues Problem. Wenn ich das TRUE bei .Display weg lasse, dann funktioniert die If .Saved Abfrage nicht mehr?!
Quelle
With oAppointment
.Subject = sSubject
.Body = sBody
.Display
If .Saved Then
dReminderDate = Format(oAppointment.start, "DD.MM.YY")
Worksheets("Aufgaben").Cells(iAvtiveRow, 7).Value = dReminderDate
Else
Worksheets("Aufgaben").Cells(iAvtiveRow, 7).Value = ""
End If
End With
mfg
Matthias
Anzeige
AW: Outlook Termin
03.06.2020 10:55:31
Demmerling
Hi
leider ergibt sich dadurch ein neues Problem. Wenn ich das True bei Display lösche funktioniert danach die IF .Saved Abfrage nicht mehr?!
Quelle:
With oAppointment
.Subject = sSubject
.Body = sBody
.AllDayEvent = True
.Display 'OHNE TRUE
If .Saved Then
dReminderDate = Format(oAppointment.start, "DD.MM.YY")
Worksheets("Aufgaben").Cells(iAvtiveRow, 7).Value = dReminderDate
Else
Worksheets("Aufgaben").Cells(iAvtiveRow, 7).Value = ""
End If
End With
mfg
Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Outlook Termin aus Excel erstellen


Schritt-für-Schritt-Anleitung

Um einen Outlook-Termin aus Excel zu erstellen, kannst Du den folgenden VBA-Code verwenden:

Sub OL_Termin_Einstellen()
    With CreateObject("Outlook.Application").CreateItem(1) ' 1 steht für olAppointmentItem
        .Start = Format(Date + 1, "dd.mm.yyyy") & " 09:00"
        .Duration = 60 ' Dauer in Minuten
        .Subject = "Betreff"
        .Body = "Textkörper"
        .Location = "Ort"
        .Recipients.Add "Deine E-Mail-Adresse" ' Füge hier Deine E-Mail-Adresse hinzu
        .ReminderPlaySound = True
        .ReminderSet = True
        .Save
    End With
End Sub

In diesem Code wird ein einfaches Makro erstellt, das einen neuen Termin in Outlook anlegt. Du kannst die Werte für Betreff, Textkörper und Ort entsprechend anpassen.


Häufige Fehler und Lösungen

  • Outlook blockiert nach dem Öffnen des Termins: Wenn Du nach dem Befehl .Display True Probleme hast, dass Outlook blockiert, entferne das True und nutze lediglich .Display. Dadurch kannst Du den Termin bearbeiten, bevor Du ihn speicherst.

  • IF .Saved Abfrage funktioniert nicht: Wenn Du die .Display-Methode ohne True verwendest, kann die IF-Abfrage nicht korrekt arbeiten. Stelle sicher, dass Du den Termin nach dem Bearbeiten speicherst, um die Abfrage erfolgreich durchführen zu können.


Alternative Methoden

Eine alternative Methode zum Erstellen eines Outlook-Termins ist die Verwendung von Excel-Formeln in Kombination mit VBA. Hier ist ein Beispiel, um einen Termin aus einer Excel-Zelle zu generieren:

Sub AusExcelOutlookTerminErstellen()
    Dim obj_Outlook As Object
    Dim obj_Appointment As Object

    Set obj_Outlook = CreateObject("Outlook.Application")
    Set obj_Appointment = obj_Outlook.CreateItem(1) ' olAppointmentItem

    With obj_Appointment
        .Start = Cells(1, 1).Value ' Datum aus Zelle A1
        .Subject = Cells(1, 2).Value ' Betreff aus Zelle B1
        .Body = Cells(1, 3).Value ' Textkörper aus Zelle C1
        .Location = Cells(1, 4).Value ' Ort aus Zelle D1
        .Display
    End With
End Sub

Diese Methode ermöglicht es Dir, Termine direkt aus Daten in Deinem Excel-Blatt zu erstellen.


Praktische Beispiele

Hier sind einige Beispiele für spezifische Szenarien, in denen Du Outlook-Termine aus Excel erstellen kannst:

  1. Termin aus einer Liste erstellen: Wenn Du eine Liste von Ereignissen in Excel hast, kannst Du ein Makro schreiben, das durch die Liste iteriert und für jedes Ereignis einen Termin in Outlook erstellt.

  2. Wiederkehrende Termine: Du kannst auch ein Makro anpassen, um wiederkehrende Termine in Outlook zu erstellen, indem Du die .RecurrencePattern-Eigenschaft nutzt.


Tipps für Profis

  • Nutze die VBA-Schnittstelle von Outlook, um komplexe Termin-Management-Funktionen zu implementieren, wie z. B. das Erstellen von Einladungen oder das Versenden von Erinnerungen.

  • Achte darauf, die Fehlerbehandlung in Deinen VBA-Skripten zu implementieren, um unerwartete Abstürze oder Fehlermeldungen zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich einen Termin in einem bestimmten Outlook-Kalender erstellen?
Du kannst den spezifischen Kalender mit der Methode GetFolder ansteuern, indem Du die entsprechende Ordner-ID verwendest.

2. Kann ich Termine direkt aus einer E-Mail erstellen?
Ja, Du kannst VBA verwenden, um Informationen aus einer E-Mail zu extrahieren und einen Termin zu erstellen, indem Du die Eigenschaften der E-Mail in den Termin überträgst.

3. Ist es möglich, Erinnerungen für Termine zu setzen?
Ja, Du kannst die .ReminderSet-Eigenschaft auf True setzen und die .ReminderMinutesBeforeStart-Eigenschaft verwenden, um die Anzahl der Minuten festzulegen, bevor die Erinnerung angezeigt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige