Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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

Tüpenkonflikt Termine auslesen (Outlook)

Tüpenkonflikt Termine auslesen (Outlook)
24.06.2016 15:07:03
Richard
Hallo,
ich muss für meinen Arbeitgeber Termine aus verschiedenen Outlook-Kalendern auslesen und übersichtlich darstellen. Dieses vorhaben scheitert gerade daran, dass ich nicht verstehe, wie ich die vorhandenen Termine so filtere, dass lediglich die Einträge eines bestimmten Datumsbereiches übrigbleiben. Kurios bei meinem derzeitigen Ansatz ist, dass ich nämlich Termine erhalte, die komplett außerhalb der angegebenen Zeitspanne liegen. Das Script fordert den User zur Datumseingabe im Format tt.mm.jjjj auf, also 10.08.2016. Hier mal der betreffende Codeausschnitt:
Function getCalendar(MaName)
'wscript.echo MaName & " ist in getCalendar() zur verarbeitung angekommen"
Set mitarbeiter = olns.CreateRecipient(MaName)
mitarbeiter.resolve
if mitarbeiter.resolved then
Set SharedFolder = olns.GetSharedDefaultFolder(mitarbeiter, 9)
set oItems = SharedFolder.Items.restrict("[Start] = " & Format(publicStartDate, "dd.mm.yyyy  _
hh:mm:ss"&") & "))
'Set oItems = SharedFolder.Items.Restrict("[Start] >= '" & publicStartDate & "' and [Start] 
Ich habe auch schon die verschiedensten wscript.echos eingebaut, um zu schauen, an welcher Stelle es haken könnte, werde jedoch nicht schlau daraus. Für rasche und konstruktive Hilfe bedanke ich mich schon mal im Voraus
Lieben Gruß
Richard

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tüpenkonflikt Termine auslesen (Outlook)
24.06.2016 15:57:09
Richard
Nachtrag:
Bitte entschuldigt: Ich habe eine leicht modifizierte Version gepostet, die tatsächlich einen Typenkonflikt verursacht, was ich nicht verstehe. Die Variable publicStartDate fülle ich außerhalb der Funktion un, sie ist als public definiert. Bitte schaut auf die Zeile, in welcher die Termine mit .restrict eingeschränkt werden, darunter steht die Zeile, mit deren Ausführung das Script zumindest lauffähig ist. Jedoch werden dann wie oben geschrieben komplett falsche Termine ausgegeben. Weiterhin scheint das Script massieve Schwierigkeiten mit Serienterminen zu haben. Diese werden nämlich lediglich nur ein Mal ausgegeben, und zwar wenn es Nummer 1 der Serie ist.
Vielen Dank weiterhin für Eure Hilfe
Richard

Anzeige
AW: Tüpenkonflikt Termine auslesen (Outlook)
26.06.2016 20:29:51
firmus
Hi Richard,
hier ein getestetes Beispiel für das Auslesen von ReOccurances im Outlook-Kalender.
https://www.herber.de/bbs/user/106550.xlsm
Im Makro sind einige erklärende Bemerkungen enthalten.
Die Adressierung einzelner Kalender muss Du noch ergänzen.
Lass wissen, ob es geklappt hat.
Gruß
Firmus

AW: Tüpenkonflikt Termine auslesen (Outlook)
27.06.2016 09:52:28
Richard
Hallo Firmus,
leider hilft mir das nicht weiter. Mein Problem dreht sich ja um den Datumsvergleich, eher schon um das korrekte Auslesen der Termine vorher. Bitte schaue doch mal in meinen Code und sag mir, wie ich das Datum formatieren muss, damit ein vom User eingegebenes Datum im Format TT.MM.JJJJ zum einen korrekt mit dem in der Variable oAppt.Start hinterlegten Wert verglichen werden kann, also, damit "if publicStartDate = oAppt.start" wahr ist. und zum Anderen Serientermine berücksichtigt werden. Stutzig macht mich in deinem Beispiel die Zeile
If oApp.Class = olAppointment Then
Gibt es denn noch andere Klassen, die ein Kalendereintrag haben könnte? Weiterhin kann ich deinen Code nicht verwenden, da dieser in VBA geschrieben wurde, ich die Aufgabe jedoch in VB-Script lösen muss.
Vielen Dank für deine Hilfe jedoch bisher schon.
Lieben Gruß
Richard

Anzeige
AW: Tüpenkonflikt Termine auslesen (Outlook)
27.06.2016 22:51:45
firmus
Hallo Richard,
ich habe mir das nochmals angesehen.
1. VB-Script
Sorry, hatte ich nie die Möglichkeit damit zu arbeiten.
und es gibt doch, gerade bei Definitionen und Konvertierungen, massive Unterschiede - scheint mir
2. RESTRICT
muss ich passen, habe ich vor vielen Jahren ein paar mal angewandt (in VBA) - sorry vergessen.
Soweit im mich erinnere müssen die Werte hier definitions-kompatibel als String dargestellt sein.
d.h. wenn ich eine CDATE variable fix belege muss das so aussehen: z = #2/13/2016#
3. Datumsformat
in Restrict vergleichst Du auf Sekunde genau - mit deiner Formatanweisung.
Felder im Format DATE / CDATE sollten verträglich sein, da sie nur numerisch arbeiten.
In deinem Fall formst du aber per FORMAT auf STRING-format um, das du später wieder auf CDATE-format bringst.
Vergleich von STRING mit CDATE kann nicht klappen. (in VBA)
Eine Variant-Variable ändert gemäß der eingesetzen Befehle das Format - und damit die Vergleichbarkeit.(Stolperfalle)
4. Einstellungen
Datumsformate sind wegen der vielen dynamischen Umformungen in Excel schwer zu greifen.
a) Testen würde ich - im ersten Schritt - deshalb mit eindeutigen Terminen wie 23.06.2016, nicht mit 10.08.2016.
b) würde ich prüfen wie das Language Setting des Rechners ist (Deutsch / Englisch).
c) ob die Anwendung, aufgrund des Dateninhalts, nochmals eigenständig formatiert (z.B. Excel).
Mehr kann ich dir leider nicht beitragen - bin nur in VBA zu Hause.
Arbeite in einer US-Company, Standort Deutschland, da habe ich dieses Thema fast täglich am Tisch.
Gruß
Firmus

Anzeige
AW: Tüpenkonflikt Termine auslesen (Outlook)
28.06.2016 08:29:20
firmus
Nachtrag:
If oApp.Class = olAppointment Then
Im Outlook Objektmodel müssen die Objektklassen nicht streng getrennt sein.
D.h. im Folder Kalender können auch andere Objektklassen gespeichert sein, z. B. ein Email, ein Kontakt, usw.
Annahme:
Du willst per Loop alle Einträge aus dem Folder Kalender auslesen, um das Attribut "Start" eines jeden Termins zu entnehmen.
Falls in diesem Folder ein Email oder ein Kontakt gespeichert ist, wirst Du das Attribut "Start" bei den Objektklassen "Email" und "Kontakt" nicht finden.
Programmverhalten:
a) ohne Error-Routine: VBA bricht ab und bringt eine Fehlermeldung
b) mit Error-Routine: Deine Error-Routine wird den Fehler behandeln.
c) mit Objektklassen-Abfrage: Es werden nur Objekte der Klasse "Kalender" bereitgestellt.
Das ist das Standardverhalten von MS-Office-VBA.
Gruß
Firmus

Anzeige
AW: Tüpenkonflikt Termine auslesen (Outlook)
28.06.2016 09:02:45
Richard
Hallo Firmus,
deine Hinweise auf die im Hintergrund stattfindende Datentüpenumformung in Verbindung mit diesem Artikel Haben schließlich zum Erfolg geführt.
http://www.outlookcode.com/article.aspx?id=30
Vielen Dank für deine Hilfe
Gruß
Richard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige