Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
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
Inhaltsverzeichnis

Termingenerierung Problem mit .Recipients.Add

Termingenerierung Problem mit .Recipients.Add
22.10.2014 06:16:47
Florin
Moin Leute,
ich bin absoluter VBA-Neueinsteiger und habe ein Problem, welches ich leider nicht verstehe. Ich habe mir einen VBA-Code geschrieben, mit dem ich aus einer Excel Tabelle heraus Kalendareinträge erstelle und diese an verschiedene Mitarbeiter versende. Es klappt auch alles, abgesehen von dem Teil mit dem versenden...
Hier einmal der Code:

Public Sub terminegenerieren()
Dim TerminText As String
Dim OutApp As Object, apptOutApp As Object
Dim Spalte, SpalteN As Variant
Dim objRecipient As Outlook.Recipient
Dim b, x As Integer
Range("B2").Select
'Do Until ActiveCell.Value = "Stop"
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
Set objRecipient = Nothing
With apptOutApp
.BusyStatus = 0
.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
.Subject = ActiveCell.Offset(0, 1)
.Recipients.Add "test@testing.de"
.Body = "Hier steht ein Text."
.Location = "Büro"
.Duration = "60"
.ReminderMinutesBeforeStart = 10
.ReminderSet = True
.ResponseRequested = True
.Send
.Save
ActiveCell.Offset(0, 4) = .EntryID
End With
ActiveCell.Offset(1, 0).Select
Set apptOutApp = Nothing
Set OutApp = Nothing
'Loop
MsgBox "Termin an Outlook übertragen!"
End Sub

Vielen Dank schon einmal im Vorraus!
Gruß
Florin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
.MeetingStatus = 1 fehlt oT.
22.10.2014 10:57:05
Tino

AW: .MeetingStatus = 1 fehlt oT.
22.10.2014 14:24:41
Florin
Vielen vielen Dank für den Tipp!, Termin wird jetzt verschickt. Ich habe jetzt leider direkt das nächste Problem. Ich speichere ja die EntryID, da ich die Termine im Anschluss wieder löschen können muss. Auch hierfür habe ich bereits ein (halb) funktionierendes Skript:

Public Sub deletetest()
Dim objAppointment As Object
Dim CalEntryID As Variant
Set objOutlook = New Outlook.Application
CalEntryID = Range("F2")
Set objAppointment = objOutlook.Session.GetItemFromID(CalEntryID)
objAppointment.Delete
End Sub

Leider lösche ich hiermit nur den Termin aus meinem Outlook und nicht aus dem der anderen Teilnehmer...
Ich bin über jeden Tipp sehr dankbar...
Gruß
Florin

Anzeige
AW: .MeetingStatus = 1 fehlt oT.
22.10.2014 15:27:05
Tino
Hallo,
versuch es mal so.
Public Sub deletetest()
Dim objAppointment As Object
Dim objOutlook As Object
Dim CalEntryID As Variant
Set objOutlook = CreateObject("Outlook.Application")
CalEntryID = Range("F2")
Set objAppointment = objOutlook.Session.GetItemFromID(CalEntryID)
objAppointment.MeetingStatus = 5 'olMeetingCanceled
objAppointment.Send
objAppointment.Delete
End Sub
Gruß Tino

AW: .MeetingStatus = 1 fehlt oT.
27.10.2014 08:34:13
Florin
Moin Tino,
vielen Dank noch einmal für deine Hilfe! Also der Termin wird jetzt bei dem Nutzer als "abgesagt" angezeigt. Das reicht erstmal. Ich habe nun noch das Problem, dass ich den Termin immer nur einer Person schicken kann. Geht das auch anders? Mein Wunsch wäre, wenn man es so lösen könnte:
Dim OutApp As Object, apptOutApp As Object
Dim Spalte, SpalteN As Variant
Dim objRecipient As Outlook.Recipient
Dim b, x As Integer
Range("B2").Select
'Wählt Spalte B, Zeile 2 aus
Do Until ActiveCell.Value = "Stop"
'Do Schleif, bis die ausgewählte Zelle "Stop" ist
Set OutApp = CreateObject("Outlook.Application")
'Legt ein Outlook-Objekt an
Set apptOutApp = OutApp.CreateItem(1)
'Legt ein "Appointmentitem"-Objekt an
With apptOutApp
.BusyStatus = olFree
'Termin-Status
.MeetingStatus = 1
.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
'Startzeitpunkt des Termins (Ausgewählte Zelle gibt das Datum an)
.Subject = ActiveCell.Offset(0, 1)
'Betreff des Termins (Ausgewählte Zelle + 1)
.Recipients.Add = ActiveCell.Offset(0, 2)
'Gibt weitere Empfänger/Teilnehmer des Termins an
.Body = "Hier steht ein Text."
'Inhalt des Termins
.Location = "Büro"
'Ort des Termins
.Duration = "60"
'Dauer des Termins
.ReminderMinutesBeforeStart = 10
'Erringerung vor dem Termin
.ReminderSet = True
'Errinerung aktiviert
.ResponseRequested = True
'Antwort auf den Termin benötigt
.Send
'Sendet den Termin an den Empfänger
.Save
'Speichert die EntryID des Termins
ActiveCell.Offset(0, 4) = .EntryID
'Schreibt die EntryID in die gewählte Zelle + 4
End With
ActiveCell.Offset(1, 0).Select
'Ausgewählte Zelle springt eine Zeile weiter
Set apptOutApp = Nothing
Set OutApp = Nothing
'Variablen werden geleert
Loop
'Do Schleif, bis die ausgewählte Zelle "Stop" ist
MsgBox "Termin an Outlook übertragen!"
'Meldung für den Excel-User
End Sub

Das funktioniert leider nicht, ich bekomme folgende Fehlermeldung: "Argument ist nicht optional"
Wäre super wenn du auch hier eine Lösung hättest.
Vielen Dank im Vorraus.
Gruß
Florin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige