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

Forumthread: Termin in Outlook Teilnehmer einladen

Termin in Outlook Teilnehmer einladen
07.04.2022 12:13:46
Dirk
Hallo, liebe Experten,
ich lege über Excel einen Termin in Outlook an und möchte diesen gerne automatisch versenden.
Anlegen und speichern in Outlook funktioniert wunderbar, nur die Einladung an die gewünschte
Person nicht. Zum besseren Verständnis füge ich mal den Code an.
Vielen Dank im Voraus

Private Sub CommandButton1_Click()                              'Start des Termins hier, A1 Datum und B1 Uhrzeit
Dim myOLApp As Object
Dim myItem As Object
Set myOLApp = CreateObject("Outlook.Application")
Set myItem = myOLApp.CreateItem(1)
If CheckBox1 = False Then
Sheets("Dauer").Activate
Range("A1").Offset(0, 0).Select
With UserForm1
ActiveCell.Offset(1, 4).Value = .TextBox1.Value
ActiveCell.Offset(1, 5).Value = .ComboBox1.Value
ActiveCell.Offset(1, 6).Value = .TextBox2.Value
ActiveCell.Offset(1, 7).Value = .ComboBox2.Value
End With
If Sheets("Dauer").Range("I2").Value 
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Termin in Outlook Teilnehmer einladen
07.04.2022 15:02:11
Yal
Hallo Dirk,
die Aktion heisst "send"
myItem.Send
Die Methode mit CreateObject heisst übrigens Late Binding, weil der Zugriff auf der Bibliothek erst in der Programmierzeile stattfindet.
Die andere heisst "Early Binding" und geht über das Anbinden eine Bibliothek "im Voraus", spricht in VBA über "Extras", "Verweise...", zum Eintrag "Microsoft Outlook 19.0 Object Library" runterscrollen und Haken setzen.
Early Binding hat mehrere Vorteile: Du hast alle Information über die Objekte im Objektkatalog: "Ansicht", "Objektkatalog" oder F2. Dort in dem Dropdown "Alle Bibliotheken" gibt es jetzt auch den Eintrag "Outlook". Man kann auch direkt nach "AppointmentItem" suchen.
zweite Vorteil ist die direkte Typisierung von Variablen. Aus:

Dim myOLApp As Object
Dim myItem As Object
Set myOLApp = CreateObject("Outlook.Application")
Set myItem = myOLApp.CreateItem(1)
wird

Dim myOLApp As Outlook.Application
Dim myItem As AppointmentItem
Set myItem = new AppointmentItem
und drittens, Intellisense weisst jetzt von der Bibliothek: wenn Du jetzt "myItem." schreibst, kommt die Liste der Methoden und Eigenschaften der Objekt AppointmentItem.
Und darin steht u.a. "Send".
VG
Yal
Anzeige
AW: Termin in Outlook Teilnehmer einladen
08.04.2022 11:57:58
Dirk
Hallo Yal, vielen Dank für Deine Hilfe. Leider kann ich erst heute antworten. Bei der von Dir vorgeschlagenen Lösung bekomme ich leider eine Fehlermeldung. Im Moment ist es so, daß die entsprechenden Teilnehmer im Termin eingefügt sind. Ich muß aber in den Termin gehen und den Button "Erforderlich" betätigen um dann "Versenden" auszuwählen.
Anzeige
AW: Termin in Outlook Teilnehmer einladen
08.04.2022 18:03:15
Yal
Hallo Dirk,
wenn man genau schaut, welche Unterscheid es gibt, zwischen CheckBox1 = True und nicht, dann kann man den Code wesentlich kürzer machen, da ein Grossteil nur Wiederholung ist.
Folgendes ungestestet:

Private Sub CommandButton1_Click()                              'Start des Termins hier, A1 Datum und B1 Uhrzeit
Dim myOLApp As Outlook.Application
Dim myItem As AppointmentItem
Set myItem = New AppointmentItem
Sheets("Dauer").Activate
Range("A1").Select
With UserForm1
ActiveCell.Offset(1, 4).Value = .TextBox1.Value
ActiveCell.Offset(1, 5).Value = .ComboBox1.Value
ActiveCell.Offset(1, 6).Value = .TextBox2.Value
ActiveCell.Offset(1, 7).Value = .ComboBox2.Value
End With
With myItem
.Subject = ComboBox5.Value                                      'Betreff
.Body = ComboBox6.Value                                         'Text
'.Attachments.Add "C:\DBS.TXT"                                  'für Anlagen
.Location = ComboBox4.Value                                     'Ort
.Categories = UserForm1.ComboBox3.Value                         'Kategorie
.Start = Format(UserForm1.TextBox1.Value, "dd.mm.yyyy") & " " & _
Format(UserForm1.ComboBox1.Value, "hh:mm")
If CheckBox1 Then
.AlldayEvent = True                                            'ganztägiger Termin
Else
.Duration = Sheets("Dauer").Range("I2").Text                    'Dauer
.Recipients.Add "cbauer@mts-mobile.de", Type:=olRequired        'Teilnehmer
End If
'.Duration = Sheets("Dauer").Range("I2").Text                    'Dauer
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
.Send
End With
MsgBox "Termin an Outlook übertragen!"
UserForm1.TextBox1.Value = ""
UserForm1.TextBox2.Value = ""
UserForm1.ComboBox1.Value = ""
UserForm1.ComboBox2.Value = ""
UserForm1.ComboBox3.Value = ""
UserForm1.ComboBox4.Value = ""
UserForm1.ComboBox5.Value = ""
UserForm1.ComboBox6.Value = ""
Sheets("Dauer").Range("E2:H2").Value = ""
Set myOLApp = Nothing
Set myItem = Nothing
End Sub
Der Recipient-Typ (olRequired oder olOptional) wird gesetzt, am Ende wird gesendet.
in Early Binding. Also "Extras", "Verweise...", usw.
VG
Yal
Anzeige
AW: Termin in Outlook Teilnehmer einladen
11.04.2022 13:47:00
Dirk
Hallo Yal,
hab den Code gerade ausprobiert, ich erhalte folgende Fehlermeldung : "Fehler beim Kompilieren : unzulässige
Verwendung des Schlüsselworts New" in der Zeile "Set myItem = New AppointmentItem".
AW: Termin in Outlook Teilnehmer einladen
11.04.2022 15:28:50
Yal
Hallo Dirk,
sorry, übersehen, dass es hier ein Sonderfall ist.
Richtig ist:

Set myItem = CreateItem(olAppointmentItem)
VG
Benoit
Anzeige
AW: Termin in Outlook Teilnehmer einladen
11.04.2022 16:56:08
Dirk
Leider muß ich das Versenden immer noch manuell anstossen.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Outlook Termin Teilnehmer Einladen


Schritt-für-Schritt-Anleitung

Um einen Termin in Outlook zu erstellen und Teilnehmer automatisch einzuladen, kannst Du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es Dir, einen Termin aus Excel zu erstellen und die Einladungen direkt zu versenden.

  1. Öffne Excel und gehe zu den Entwicklertools.
  2. Füge einen neuen Modul hinzu und kopiere den folgenden Code hinein:
Private Sub CommandButton1_Click()
    Dim myOLApp As Outlook.Application
    Dim myItem As AppointmentItem
    Set myOLApp = New Outlook.Application
    Set myItem = myOLApp.CreateItem(olAppointmentItem)

    With myItem
        .Subject = "Dein Termin"
        .Body = "Details zum Termin"
        .Start = Date + TimeValue("13:00:00") ' Beispielstartzeit
        .Duration = 60 ' Dauer in Minuten
        .ReminderSet = True
        .ReminderMinutesBeforeStart = 10
        .Recipients.Add "teilnehmer@example.com" ' Teilnehmer hinzufügen
        .Send ' Termin senden
    End With

    MsgBox "Termin wurde erstellt und die Einladung wurde gesendet!"
End Sub
  1. Passe die Parameter wie Betreff, Body und Teilnehmer an Deine Bedürfnisse an.
  2. Klicke auf den Button, um den Termin in Outlook zu erstellen und die Einladung zu versenden.

Häufige Fehler und Lösungen

  • Fehler: "Fehler beim Kompilieren: unzulässige Verwendung des Schlüsselworts New"

    • Stelle sicher, dass Du Set myItem = CreateItem(olAppointmentItem) verwendest, anstatt Set myItem = New AppointmentItem.
  • Fehler: Teilnehmer werden nicht eingeladen

    • Überprüfe, ob die E-Mail-Adresse korrekt eingegeben wurde und ob der Befehl .Send am Ende des Codes vorhanden ist.
  • Fehler: Einladung wird nicht gesendet

    • Stelle sicher, dass die Outlook-Anwendung korrekt installiert und konfiguriert ist.

Alternative Methoden

Wenn Du externe Kontakte einladen möchtest oder mehrere Termine in einer Einladung zusammenfassen willst, kannst Du die Empfänger wie folgt hinzufügen:

.With myItem
    .Recipients.Add "externer.kontakt@example.com"
    .Recipients.Add "weiterer.kontakt@example.com"
    ' Hier kannst Du weitere Teilnehmer hinzufügen
End With

Für das Eintragen von Geburtstagen in Outlook aus Excel gibt es spezifische VBA-Skripte, die Du ebenfalls anpassen kannst.


Praktische Beispiele

Hier sind einige praktische Szenarien, wie Du den VBA-Code anpassen kannst:

  1. Geburtstage in Outlook eintragen aus Excel:

    • Nutze eine Schleife, um durch eine Liste von Geburtstagskindern zu iterieren und Termine in Outlook zu erstellen.
  2. Outlook Termin nur als Information versenden:

    • Setze den Empfängertyp auf olOptional, wenn die Einladung nicht zwingend erforderlich ist.
  3. Termin in Outlook erstellen und einladen:

    • Kombiniere die oben genannten Schritte, um einen vollständigen Workflow für die Terminplanung zu erstellen.

Tipps für Profis

  • Nutze Early Binding für einen besseren Zugriff auf die Outlook-Objekte und eine einfachere Fehlerbehebung.
  • Verwende Debug.Print um Variablen und den Status Deines Codes während der Ausführung zu überprüfen.
  • Halte Deine VBA-Umgebung sauber, indem Du nicht verwendete Objekte und Module regelmäßig entfernst.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Teilnehmer in einer Einladung hinzufügen? Du kannst einfach mehrere E-Mail-Adressen in der Zeile .Recipients.Add hinzufügen, um mehrere Teilnehmer einzuladen.

2. Wie kann ich den Termin nur an neue Teilnehmer senden? Verwende die Option .Send nach dem Hinzufügen der neuen Teilnehmer und stelle sicher, dass Du nicht bereits eingeladene Teilnehmer erneut einlädst.

3. Welche Outlook-Version wird benötigt? Der Code sollte mit Outlook 2010 und höher funktionieren, achte darauf, dass die benötigten Bibliotheken in den Verweisen aktiviert sind.

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