Anzeige
Archiv - Navigation
1368to1372
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

Outlook-Termine eines bestimmten Tages aufrufen

Outlook-Termine eines bestimmten Tages aufrufen
17.07.2014 15:25:05
Olli
Hallo Leute :)
Ich habe da eine Frage mal und hoffe, ihr könnt mir helfen.
Vor einiger Zeit habe ich mithilfe des Forums hier es geschafft, dass mittels VBA von einer UF aus Outlook-Kalendereinträge eines bestimmten Tages ausgelesen und importiert wurden. Das hat prima geklappt...bis wir hier Office 2010 erhalten haben. Seitdem bekomme ich (unabhängig vom angefragten Datum) nur noch alle Geburtstagseinträge geliefert, wann auch immer die sind. Die eigentliche Termine werden mir aber nicht geliefert. Woran kann das liegen und wie muss ich meinen Code anpassen um die alte Funktion wieder herzustellen?
Hier mein aktueller Code:

Dim outl, Datumdg As Date
Dim ns, terminOrdner, termine, Termin
Set outl = CreateObject("Outlook.Application")
Set ns = outl.GetNamespace("MAPI")
Set terminOrdner = ns.GetDefaultFolder(9) 'olFolderCalendar
If Datum.Value  "" Then
'Filtere Termine dieses Tages
Datumdg = Format(Datum.Value, "dd.mm.yy")
Set termine = terminOrdner.Items.Restrict("[Start] >= '" & Datumdg & "' and [end]  "" Then Range(Range("A1"), Range("A1").End(xlDown)).EntireRow.Delete
For Each Termin In termine
ActiveCell = Termin.Subject
ActiveCell.Offset(0, 1) = Termin.Start
ActiveCell.Offset(0, 2) = Termin.End
ActiveCell.Offset(0, 3) = Termin.Location
If ActiveCell.Offset(0, 3) 

Wäre super, wenn jemand einen Tipp hätte :)
Viele Grüße
Olli

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

Betreff
Datum
Anwender
Anzeige
AW: Outlook-Termine eines bestimmten Tages aufrufen
21.07.2014 13:04:29
Olli
Hallo Luschi!
Danke für den Tipp :) Hab den Code nun angepasst und ich bekomme schon mal nicht nur die Geburtstagseinträge, sondern auch alle "normalen" Termine angezeigt..aber leider ALLE, die ab dem Datum liegen...ich will aber ja nur für einen bestimmten Tag (=Datum.value). Noch ne Idee woran es liegen könnte? Code lautet nun so:
 Dim outl
Dim ns, terminOrdner, termine, Termin
Set outl = CreateObject("Outlook.Application")
Set ns = outl.GetNamespace("MAPI")
Set terminOrdner = ns.GetDefaultFolder(9) 'olFolderCalendar
If Datum.Value  "" Then
'Filtere Termine dieses Tages
Set termine = terminOrdner.Items.Restrict("[Start] >= '" & Format(Datum.Value, "mm/dd/yyyy") & _
"' and [end]  "" Then Range(Range("A1"), Range("A1").End(xlDown)).EntireRow.Delete
For Each Termin In termine
ActiveCell = Termin.Subject
ActiveCell.Offset(0, 1) = Termin.Start
ActiveCell.Offset(0, 2) = Termin.End
ActiveCell.Offset(0, 3) = Termin.Location
If ActiveCell.Offset(0, 3)  0 Then
UserForm2.ol.Visible = True
Columns("A:F").Select
UserForm2.ol.tag = 1
Set rngsource = Worksheets("outlook").Range("A1").CurrentRegion
' Spaltenanzahl des Datenbereichs ermitteln.
intcolums = 4
With UserForm2.ol
.ListStyle = fmListStyleOption      ' Auswahlfeld zu Beginn der Zeile
' von Peter Haserodt
' nur eine Auswahl, bei .ListStyle = fmListStyleOption Optionbutton in  _
Listbox
.MultiSelect = fmMultiSelectSingle
' mehrere können ausgewählt werden,.ListStyle = fmListStyleOption checkboxen  _
in Listbo
'.MultiSelect = fmMultiSelectMulti
'.MultiSelect = fmMultiSelectExtended
' gibt eigentlich nur bei Liststyle Plain einen Sinn, funzt aber auch anders.
' Dies bewirkt, dass mit Shift und Strg Tasten  eine Mehrfachauswahl  _
getroffen
' werden kann
.ColumnCount = intcolums
.ColumnHeads = False
.RowSource = rngsource.Address
End With
Set rngsource = Nothing
UserForm2.OptionButton1.Value = True
UserForm2.Show
Else
Sheets("Dienstgang").Activate
End If
Else
MsgBox "Bitte Datum erst angeben!"
End If

Anzeige
AW: Outlook-Termine eines bestimmten Tages aufrufen
21.07.2014 13:21:02
Olli
Ah...Denkfehler..dachte ich zumindest..das Enddatum wurde nicht richtig berechnet..hab´s geändert..und nun...wieder beim Alten..nur die Geburtstage :( Ey..ich versteh es nicht...Beginn- und Enddatum werden korrekt angezeigt, auch in dem gewünschten Format und trotzdem klappt es nicht..wo ist mein Denkfehler? Aktueller Code wie folgt:
Dim outl
Dim myStart As Date
Dim myEnd As Date
Dim ns, terminOrdner, termine, Termin
Set outl = CreateObject("Outlook.Application")
Set ns = outl.GetNamespace("MAPI")
Set terminOrdner = ns.GetDefaultFolder(9) 'olFolderCalendar
myStart = Datum.Value
myEnd = DateAdd("d", 1, myStart)
If Datum.Value  "" Then
'Filtere Termine dieses Tages
Set termine = terminOrdner.Items.Restrict("[Start] >= '" & Format(myStart, "mm/dd/yyyy") & "'  _
and [end]  "" Then Range(Range("A1"), Range("A1").End(xlDown)).EntireRow.Delete
For Each Termin In termine
ActiveCell = Termin.Subject
ActiveCell.Offset(0, 1) = Termin.Start
ActiveCell.Offset(0, 2) = Termin.End
ActiveCell.Offset(0, 3) = Termin.Location
If ActiveCell.Offset(0, 3)  0 Then
UserForm2.ol.Visible = True
Columns("A:F").Select
UserForm2.ol.tag = 1
Set rngsource = Worksheets("outlook").Range("A1").CurrentRegion
' Spaltenanzahl des Datenbereichs ermitteln.
intcolums = 4
With UserForm2.ol
.ListStyle = fmListStyleOption      ' Auswahlfeld zu Beginn der Zeile
' von Peter Haserodt
' nur eine Auswahl, bei .ListStyle = fmListStyleOption Optionbutton in  _
Listbox
.MultiSelect = fmMultiSelectSingle
' mehrere können ausgewählt werden,.ListStyle = fmListStyleOption checkboxen  _
in Listbo
'.MultiSelect = fmMultiSelectMulti
'.MultiSelect = fmMultiSelectExtended
' gibt eigentlich nur bei Liststyle Plain einen Sinn, funzt aber auch anders.
' Dies bewirkt, dass mit Shift und Strg Tasten  eine Mehrfachauswahl  _
getroffen
' werden kann
.ColumnCount = intcolums
.ColumnHeads = False
.RowSource = rngsource.Address
End With
Set rngsource = Nothing
UserForm2.OptionButton1.Value = True
UserForm2.Show
Else
Sheets("Dienstgang").Activate
End If
Else
MsgBox "Bitte Datum erst angeben!"
End If

Anzeige
AW: Outlook-Termine eines bestimmten Tages aufrufen
21.07.2014 18:24:52
Luschi
Hallo Olli,
Vba-Outlook ist eine ganz schön knackige Angelegenheit. Hier kommt es auf Genauigkeit an und eine sehr genaue Variablen-Definition ist A & O.
Nur mal ein Ungenauigkeit in Deinem Code: For Each Termin In termine
'Temin' ist bei Dir vom Typ 'Variant'
In der Beispiellösung lautet die Schleife: For Each oAppt In oFinalItems
und 'oAppt' ist vom Typ 'Outlook.AppointmentItem'
Und so gibt es bei Dir lauter kleine Unterschiede zum Original. Die Property
'IncludeRecurrences' und der anschließende Sort-Befehl fehlen ganz.
Nimm also die vorgeschlagene MS-Lösung und passe nur das Datum!!! an - nichts weiter, und dann klappt das auch.
Gruß von Luschi
aus klein-Paris
Anzeige

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige