Per VBA eine Aufgabe in Outlook einrichten?

Hallo,

ist es möglich per VBA Code bei einer bestimmten Bedingung in einem z.B. Word Document, eine Aufgabe bei einem Bestimmten User in Outlook einzurichten?

Vielen Dank im voraus
Udo

z.B. so:

Public Function CreateOutlookTask(SDate, Optional EDate, \_
 Optional Subject = "", Optional Body = "")
Dim myOlApp As Object, aItm As Object, isOpen As Boolean
 On Error Resume Next
 Set myOlApp = GetObject(, "Outlook.Application")
 isOpen = False
 If Err = 0 Then
 isOpen = True
 Else
 Err.Clear
 On Error GoTo Er
 Set myOlApp = CreateObject("Outlook.Application")
 End If
 On Error GoTo 0

 ' Neue Aufgabe anlegen
 Set aItm = myOlApp.CreateItem(3) ' olTaskItem
 With aItm
 .Subject = Subject
 .Body = Body
 .StartDate = CDate(SDate)
 If Not IsMissing(EDate) Then .DueDate = EDate
 .Save
 End With

Ex:
 On Error Resume Next
 If isOpen Then Set myOlApp = Nothing
 Exit Function

Er:
 MsgBox "CreateOutlookTask: " & Err & " " & Err.Description
 GoTo Ex
End Function

Gruß aus dem Norden
Reinhard Kraasch

Hallo Reinhard

Vielen Dank erst mal für die super schnelle Unterstützung,

aber…

ich bin zwar blutiger Anfänger in Sachen VBA möchte aber trotz dem diese Aufgabe irgendwie lösen,und nun komme ich leider mit deinem VBA Code nicht so ganz klar.

Ist es möglich diesen auf das nötigste zusammen zu streichen und einmal zu erläutern was wo gemacht wird?

vielen Dank noch einmal

Udo

Das Nötigste ist der Rumpf der Prozedur, also:

' Outlook starten:
Set myOlApp = CreateObject("Outlook.Application") 

' Neue Aufgabe anlegen:
Set aItm = myOlApp.CreateItem(3) ' olTaskItem 

' Subject und Datum eintragen
aItm.Subject = Subject 
aItm.StartDate = CDate(SDate) 

' speichern:
aItm.Save

Der restliche Code dient dazu, Outlook nicht mehrfach zu starten und der Fehlerbehandlung (ist deshalb nicht überflüssig).

(Derart komplexe Aufgabestellungen erfordern schon einiges an VBA-Kenntnissen - speziell auch Kenntnis des Outlook-Objektmodells!)

Gruß aus dem Norden
Reinhard Kraasch

Hallo Reinhard

Das ist genau das was ich suche und schon seit ewigkeiten anteste.

Jetzt aber noch ein kleiner Zusatz den Du wahrscheinlich aus der ersten Anfrage nicht raus gelesen hast.

Ich möchte diese Aufgabe nicht nur bei mir sondern auch noch bei anderen Usern im Netzwerk eigetragen haben.

-geht das ???-

Noch mal super vielen Dank für die super schnelle Hilfe,
und ich versprech auch, ich werde üben, üben, üben, …

Udo

Da bin ich jetzt ein wenig überfragt - es hängt aber auch davon ab, wie du auf die anderen Benutzer zugreifen willst - hast du deren Ordner in deinem Outlook im Zugriff (dann müsste man sich über die Ordnerhierachie durchhangeln - wobei das dann aber wohl sehr spezifisch wird…) Ansonsten müsste man wohl eher eine Aufgabenanfrage für die anderen Benutzer erstellen…

Gruß aus dem Norden
Reinhard Kraasch

Hallo Reinhard

wie Du an der Uhrzeit siehst bin ich noch heftig am üben.

Also über eine Anfrage ist völlig in Ordnung, ich will ja nicht hacken.
Es würde auf ausreichen, dieses per Mail zuversenden wo die anderen die Möglichkeit haben diese Aufgabe mit der Mail zu löschen oder einzurichten.

Udo

Das geht so:

 Set aItm = myOlApp.CreateItem(3) ' olTaskItem
 With aItm
 .Assign
 .Recipients.Add "Hein Meier"
 .Subject = "was auch immer"
 .Body = "usw. usw."
 .StartDate = #2001-12-12#
 .DueDate = #2001-12-14#
 .Save
 .Send
 End With

Gruß aus dem Norden
Reinhard Kraasch

Hi Reinhard

ich kann nur mal wieder Danke sagen, echt spitze, genau daran habe ich seit ewiger Zeit gekämpft.

Udo

Noch mal Hallo Reinhard,

es tut mir leid das leidige Thema noch mal anzuschneiden.

Ich habe mal auf diese Art eine Aufgabenanfrage in die Firma geschickt.
Da kam das „reine“ Mail an. Nur geschrieben.

Es wurde kein Eintrag bei Aufgaben erstellt und/oder auch keine Möglichkeit dieses aus der Mail heraus manuell zu tun.

Haben wir uns vielleicht doch falsch verstanden oder ist das gar nicht machbar was ich vorhabe?

Ich möchte wenn ich mein Document z.B. Schließe oder einen Button drücke (das kriege ich noch hin) eine Aufgabe bei einem anderen User (Rechner) hinterlegen das dieser weiss das er an dieser Stelle an dem Auftrag weiter machen muss, und dieses per Mausklick oder Button oder Bestätigung in seine Aufgaben übernehmen kann.
Mir schwebt hier das Prinzip der Besprechungsanfrage wo der andere User mit Annehmen - Ablehnen - unter Vorbehalt - auswählen kann.

  • Oder habe ich Aufgaben Mail irgendwie falsch geöffnet - (kann ich mir eigendlich nicht vorstellen)

währe nett wenn Du mir noch mal helfen würdest.

Udo

Der angegebene Code richtet eine Aufgabenanfrage in Outlook ein, genauso, wie du sie von Hand eingeben würdest (solltest du im Outlook-Ausgangskorb sehen - wenn nicht, lass mal das .Send weg).

Probier doch mal eine manuell erstellte Aufgabenanfrage aus - wenn die auch nicht geht, hast du ein prinzipielles Problem. Ich jedenfalls hab den Code in meinem Netz hier (mit Outlook 2000) getestet.

Ob und wie Aufgabenanfragen im Netz verarbeitet werden können, hängt von allem Möglichen ab (z.B., ob Outlook überhaupt bzw. welche Versionen von Outlook auf den Clients vorhanden sind).

Gruß aus dem Norden
Reinhard Kraasch

Hallo Reinhard

ich habe versucht bei mir eine Aufgabenanfrage manuell zu erstellen, geht nicht, aber …
im Netzwerk in der Firma funktioniert das, also muss es wie Du sagst ( schreibst ) mit meiner Outlook Einstellung zusammen hängen.

Udo