Outlook VBA "aktives Fenster" in Userform

Grafixboy

Erfahrenes Mitglied
Hallo an alle tutorials-Freunde

wie kann ich aus dem aktiven Aufgabenfenster in "Outlook 2000"
den Eintrag aus der Betreff-Zeile in meine TextBox2 der Userform reinladen?

Will später noch mehrere Einträge aus dem Aufgabenfenster holen wie zB.: den Zuständigen und den Status usw. es reicht ja vielleicht erstmal ein Eintrag("Betreff") damit weiß ich ja dann ungefähr was ich da alles beachten muss.
Und kann mir den Rest ableiten.

Der Datentyp müßte ja Variant sein.
Und da gibt es doch soetwas wie olFolderTasks.

Vielleicht damit irgendwie?

Na ja ich weiß halt nicht sorecht wie danke auf jeden Fall den Helfern. :)
 
Weiß nicht ganz genau, was du meinst, aber so bekommst du den aktuellen Betreff:

Code:
Public Sub ausfgabe()
    Set myOlApp = CreateObject("Outlook.Application")
    Set myInspector = myOlApp.ActiveInspector
    aktBetreff = myInspector.CurrentItem.Subject
End Sub

gruß
thekorn
 
Danke thekorn

um dir meine Aufgabe besser vor augen zu führen habe ich einmal ein Screenshot von den Aufgabenfenster unter Outlook gemacht und eines meiner Userform.

Vielleicht wird es so verständlicher.
Mann sagt ja Zitat:"Bilder sagen mehr als tausend Worte."

Ich glaube die sind jetzt selbsterklärend.

Falls nicht:
Ich will eine bereits Vorhandene Aufgabe öffnen und dann um den Text erweitern der in meiner Userform unten eingetragen wird.

Also dieser Text soll dem in der Aufgabe schon vorhandenen vorangestellt werden.
 

Anhänge

  • Aufgabe.jpg
    Aufgabe.jpg
    52,4 KB · Aufrufe: 158
  • Eintrag erw.jpg
    Eintrag erw.jpg
    33,2 KB · Aufrufe: 155
Also Grafixboy, zunächsteinmal finde ich es unglücklich, dass du für ein und das selbe Thema zwei Threads aufgemacht hast, nämlich auch diesen hier: http://www.tutorials.de/tutorials192251.html
Eine Frage zu deinem Problem: Soll den dieses Fenster (Outlook spricht hier von einem "Inspector" mit der aktuellen Aufgabe zu sehen sein? Und wenn ja, warum brauchst du dann noch ein Formular, welches deine Eingaben wiederum in den Inspektor schreibt?

Ich glaube du möchtest doch eher die aufgabe direkt in dein Formular laden und dann dort editieren, bzw. Sachen direkt aus deinem Formular an die Aufgabe anhängen. Es ist nämlich nicht notwendig über den Inspektor eine Aufgabe zu editieren, sondern du kannst es direkt machen.

gruß
thekorn
 
Bei dem anderen Thema habe ich ja eine ganz andere Frage gestellt .
Und dann bekamm ich erst kein Feedback und dachte der Betreff sei nicht Ansprechend genug. Wollte auch nicht zuviele Fragen in ein Thema packen um verwirrungen zu vermeiden.
Und da mann den Betreff ja nicht im nachinein ändern kann naja ...
Mach es nicht wieder... Sorry
Ich gelobe Besserung.

Soll den dieser "Inspector" mit der aktuellen Aufgabe zu sehen sein? Und wenn ja, warum brauchst du dann noch ein Formular, welches deine Eingaben wiederum in den Inspektor schreibt?

Also das was im Body steht soll nicht in meine TextBox2.

Das was ich dann aber in meine Userform in TextBox2 schreibe soll dann an den
Text der Aufgabe im Body hinten dran gehängt werden.
Dabei ist es wichtig das der Kopf ("16.02.2005, Tel, Mustermann:")
immer nach dem selben Muster geschrieben ist. Deswegen die sagen wir mal
Eingabe-Hilfe.

Habe noch 3 Probleme
1. wie überschreibe ich , bei mir legt er jedesmal eine Neue Aufgabe an?
bestimmt weil ich mit CreateObject arbeite
2. wie bekomme ich es hin das ich in einer TextBox mit Return einen Zeilenumbruch
machen kann?
3. wie lasse ich z.B.: in dem Label unter dem Date Button welches das Datum anzeigt
das Datum auf anhieb erscheinen ohne das ich auf das Label klicken muss?

Mit freundlichen Grüßen Grafixboy ....in untertänigster Manier
 
zu deinen Fragen:
1. weiß nicht was du meinst, "CreateObject" legt keine neue Aufgabe an, es wird lediglich ein Objekt erzeugt, welches auf die aktuelle Aufgabe verweist.
2. Im Eigenschaftendialog der Textbox musst du folgende Einstellungen vornehmen:
  1. "Multiline = true"
  2. "EnterKeyBehavior = true"
3. Einfach dem Label beim aufrufen des Formulars den entspr. Wert zuweisen:
Code:
Private Sub UserForm_Initialize()
Label1.Caption = Date
End Sub

gruß
thekorn
 
Danke thekorn

zu 2. Hat super geklappt Multiline hatte ich schon auf true gesetzt hatte nur nicht gewußt
das mann da außerdem nochwas umstellen muss.

zu 3. Das hatte ich schon im Forum gesucht auf biegen und brechen und überall hatten
sie das selbe Problem ich glaube du bist der erste der das hier folgerichtig gepostet
hat.
PS: Meine erste Idee war auch schaust du mal unter initialisieren in die Hilfe aber da
da sieht man mal was die taugt

zu 1. Also ich öffne meine Aufgabe welche ich ändern möchte und rufe über mein Symbol
das Makro auf und es erscheint meine Userform in ihr mache ich meine Änderungen
und klicke wenn ich fertig bin auf hinzufügen und nun erstellt mir mein Makro eine
neue Aufgabe anstatt die welche ich geöffnet habe zu erweitern und abzuspeichern.

Am ende habe ich also eine neue neue Aufgabe und meine Alte unveränderte.
Ziel sollte aber sein das das was ich in meine Userform eintrage in die Aktive also die
geöffnete, bereitsvorhandene Aufgabe hinzufüge.
Im Body voran oder unterdran.

Hier mein
Code:
Private Sub Hinzufügen_Click()
Dim ol As Object, Aufgabentext As String, Betrefftext As String, ok As Integer, neuaufgabe As Object
Betrefftext = TextBox1.Text
Aufgabentext = TextBox2.Text
    If Aufgabentext = RTrim("") Then
    Exit Sub
    End If
ok = MsgBox("Ihre Aufgabe: " & vbCr & "Betreff: " & Betrefftext & vbCr & Aufgabentext & vbCr & vbCr & "in Outlook anlegen?", vbYesNo, "Aufgabe bestätigen")
If ok = vbYes Then
Set ol = CreateObject("Outlook.application")    'myOLApp
    Set neuaufgabe = ol.CreateItem(olTaskItem)  'myInspector
    With neuaufgabe
        .Subject = Betrefftext
        .Body = Aufgabentext
        .Status = olTaskNotStarted
        .Save
    End With
    Set ol = Nothing
End If
End Sub
Legt das "ol.CreateItem(olTaskItem)" dann etwa die neue aufgabe an?
Ich denke ja aber wie mache ich es dann richtig.?! :confused:

In ehrwürdiger & dehmütiger Verneigung Grafixboy

Gruß thekorn
 
Zuletzt bearbeitet:
Legt das "ol.CreateItem(olTaskItem)" dann etwa die neue aufgabe an?
Richtig!

Code:
Private Sub Hinzufügen_Click()
Dim ol As Object, Aufgabentext As String, Betrefftext As String, ok As Integer, neuaufgabe As Object
Betrefftext = TextBox1.Text
Aufgabentext = TextBox2.Text
    If Aufgabentext = RTrim("") Then
    Exit Sub
    End If
ok = MsgBox("Ihre Aufgabe: " & vbCr & "Betreff: " & Betrefftext & vbCr & Aufgabentext & vbCr & vbCr & "in Outlook anlegen?", vbYesNo, "Aufgabe bestätigen")
If ok = vbYes Then
    Set myOlApp = CreateObject("Outlook.Application")
    Set myInspector = myOlApp.ActiveInspector
    myInspector.CurrentItem.Subject = Betrefftext
    myInspector.CurrentItem.Body = Aufgabentext 
    Set myInspector = Nothing
    Set myOlApp = Nothing
End If
End Sub

So es!

gruß
thekorn
 
Dank thekorn ...

Ich weiß das hast du letzte Zeit Ziehmlich oft von mir gehört aber ich meine es noch
immer so. So funktioniert das mit dem erweitern des Aufgabenblattes.
Ich hoffe ich nerve dich nicht allzu sehr ich habe halt noch keine vernünftige
Referenz gefunden habe und sich nicht jedes Wort Befehl und Objekt ableiten läßt.
Nagut das mit dem "ol.CreateItem(olTaskItem)" das hätte ich mir wirklich ableiten können.

In diesem Thema habe ich jetzt nur noch eine Frage, die in dem Anderen Thema ist noch nicht ganz geklärt.
Und die (hoffentlich) letzte Frage in diesem Thema ist:
Ich öffne eine neue Aufgabe und gebe meinen Betreff ein rufe dann meine Userform auf
aber da steht dann in meiner Betreffzeile nichts dirn (obwohl ich es in der initialisierungs Funktion stehen habe), ich denke es liegt daran weil die
Aufgabe dann ja noch nicht abgespeichert wurde.

Liege ich damit richtig und wenn ja wie bekomme ich den Betreff dennoch in meine TextBox wie gesagt bei den Abgespeicherten funktioniert das ja.

Sehr dankbare Grüße Grafixboy an den Maestro thekorn :)
 
Tja, das scheint leider ein Outlook-Problem zu sein!
Mit allen anderen Feldern, z.B. dem "Body" klappt das ganz ohne Probleme.
Mit dem Betrefffeld verhält es sich so:
Du musst die Aufgabe nicht einaml speichern, es genügt das Feld zu verlassen. Erst dann verändert sich die ".Subject"-Eigenschaft. Dies siehst du auch daran, dass sich der Fenstertitel in "Mein Betreff - Termin" umwandelt.

Ich fürchte, dass man dort mit Outlook-Mitteln nicht weiter kommt - ist eben ein besonderes Feature von Outlook :)

gruß
thekorn
 

Neue Beiträge

Zurück