Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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 

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.
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
AW: Termin in Outlook Teilnehmer einladen
11.04.2022 16:56:08
Dirk
Leider muß ich das Versenden immer noch manuell anstossen.

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige