Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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
Outlook kalender auf Exch Serv auslesen
24.11.2021 17:26:11
Hannes
Hallo liebe Mitglieder,
ich habe eine Frage zum Thema VBA und hoffe, dass ich hier mein Problematik mit Eurer Hilfe verwirklicht bekomme. Leider bin ich in vba nicht sonderlich fit und in einer Verlinkung zu dem Thema einem anderen Thread von Oberschlumpf komm ich nicht weiter :(… vollkommen überfordert quasi mit dem langen Code.
Ich habe einen Outlook Kalender mit diversen Tageseinträgen, den ich sehr gerne in meiner ExcelTabelle in einer Art Userform angezeigt haben möchte.
Dazu habe ich gehofft, dass man den Teamkalender vom Konto (team@musterverein.de) vielleicht irgendwie "auslesen" kann und die einzelnen Einträge der kommenden zwei Tage vielleicht in eine Art Variable schreiben kann. Dabei wäre es wichtig, dass ich den Kalender angeben kann, da ich mehrere Kalender auf einem Exchange-Server zur Auswahl habe. Wichtig wäre auch, dass es eine Variable am Ende in der Ausgabe ist und nicht jeder Termin eigenständig angezeigt wird.
Die Variable sollte dann in etwa so aussehen:
23.01.2022 - 19:00-20:00 - Meeting mit Frau Müller (Absatz)
23.01.2022 - 1600-17:00 - Meeting mit Frau Mustermann (Absatz)
24.01.2022 - 10:00-15:00 - Meeting mit Herrn Meier (Absatz)
Könnte mir da vielleicht jemand bei der Problematik behilflich sein?
GLG und Dank vorab Hannes

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook kalender auf Exch Serv auslesen
24.11.2021 21:42:12
Yal
Hallo Hannes,
versuch zuerst mit Power Query.
Im Menü "Daten", "neue Abfrage", "Aus anderen Quellen", "Aus Microsoft Exchange".
Du müsstest die Adresse deines Postfachs herausfinden und eingeben.
Gehe nicht auf laden sondern "Bearbeiten". So kannst Du in Power Query die notwendige Filter setzen.
Wenn es passend ist, "Schliessen und laden". Dann hast Du deine Terminliste in Excel.
Aktualisierung mit Rechtsklick "Aktualisieren". Man kann auch eine automatische Aktualisierung einstellen.
VG
Yal
AW: VBA
24.11.2021 22:04:21
Fennek
Hallo,
mit der richtigen Referenzierung sollte VBA geeignet sein. Hier ein allgemeines Beispiel:

Sub Appointments_auslesen()
Dim FLD As Folder, mApp As AppointmentItem
Set FLD = ActiveExplorer.CurrentFolder
Debug.Print FLD.DefaultItemType, FLD.Items.Count, FLD.Parent.Name
'FLD.DefaultItemType
' 0: MailItem
' 1: AppointmentItem
' 2: ContactItem
For i = 1 To FLD.Items.Count
If FLD.Items(i).Class = olAppointment Then ' 26
Set mApp = FLD.Items(i)
With mApp
Debug.Print .Start, .End; .Duration, .Subject, .Body, .Location
End With
End If
Next i
Set mApp = Nothing
Set FLD = Nothing
End Sub
mfg
Anzeige
AW: VBA
24.11.2021 23:29:34
Hannes
Leider kommt da ein Fehler in Deinem Sub. Gleich bei Folder erste Zeile .
yal: das habe ich hinbekommen, wäre aber aber ehr an einer VBA Prozesur interessiert, da ich das als Variable brauche und keinen Platz habe für die Einträge
AW: VBA: geht schon, aber ...
25.11.2021 08:45:25
Fennek
Hallo,
der Code war getestet, hat aber einige Voraussetzungen:
- Outlook - VBA
- der Kalender muss ausgewählt sein, "ActiveExplorer"
- in der For ... Next-Schleife sollte ein Abbruch ergänzt werden
if i &gt 9 then exit for
Wie man den Kalender auswählt aus beliebigen anderen Ansichten, muss ich noch lernen.
mfg
AW: VBA
25.11.2021 21:05:38
Hannes
Das ist alles leider viel viel viel zu umfangreich. Und um das zu überblicken bedarf es vielmehr Grundkenntnisse - dachte das ist mit ein paar Zeilen Code ansprechbar, schade. Danke trotzdem.
Ich brauche eine VBA Excel Lösung, die mich hier leider nicht sehe für meine Bedürfnisse.
Danke euch trotzdem , scheint wohl nicht so einfach zu bewerkstelligen zu sein…
AW: VBA
26.11.2021 00:13:26
Yal
Hallo Hannes,
ich bin entäuscht, dass Du dich so schnell entmutigen lässt. Du brauchst nur einen "Zwischen"-Filter auf das Datum der Veranstaltung und dann im Code durch einen Funktion zu ersetzen (es handelt sich hier nicht um eine Terminliste):

let
Quelle = Excel.CurrentWorkbook(){[Name="Tabelle1"]}[Content],
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"ID", Int64.Type}, {"Datum", type date}, {"Wer", type any}, {"Wo", type any}, {"Was", type any}, {"Kommnentar", type text}}),
#"Gefilterte Zeilen" = Table.SelectRows(#"Geänderter Typ", each [Datum] >= Date.From(DateTime.LocalNow()) and [Datum] 
Ich halte Power Query für alle Aufgaben, wo es nur darum geht, Daten umzugestalten, für viel leichter als VBA. Prozess-Steuerung, ja VBA. Datenbehandlung, Power Query.
Bei VBA geht sehr schnell irgendwas schief. Es ist extrem schwierig, ein Code auf die Beine zu stellen, der eine lange Zeit ohne Anpassung läuft.
VG
Yal
Anzeige
AW: kommt da noch was?
25.11.2021 20:59:18
Hannes
Keine Ahnung von was du sprichst : ist nicht mein Thread ..
gleicher Name usw... (owT)
26.11.2021 10:27:22
Pierre
AW: Outlook kalender auf Exch Serv auslesen
26.11.2021 20:02:19
Andreas
Ich habe da mal in nem anderen Projekt etwas ähnliches gehabt..... vielleicht kannst Du damit was anfangen:
Kommt als Msgbox raus, eigentlich so wie du es willst.
Aber wie man dort den Exchange Server auswählt... Vielleicht weiss da noch jemand was dazu.... ich lass die Frage mal offen....
Option Explicit ' Consider this mandatory
' Tools | Options | Editor tab
' Require Variable Declaration
' If desperate declare as Variant

Public Function getOutlookAppointments() As String
Dim oOutlook              As Object
Dim oNS                   As Object
Dim oAppointments         As Object
Dim oFilterAppointments   As Object
Dim oAppointmentItem      As Object
Dim bOutlookOpened        As Boolean
Dim sfilter               As String
Dim displayText As String
Dim startDate As Date
Const olFolderCalendar = 9
Dim counter As Long
On Error Resume Next
Set oOutlook = GetObject(, "Outlook.Application")    'Bind to existing instance of Outlook
If Err.Number  0 Then    'Could not get instance of Outlook, so create a new one
Err.Clear
Set oOutlook = CreateObject("Outlook.Application")
bOutlookOpened = False    'Outlook was not already running, we had to start it
Else
bOutlookOpened = True    'Outlook was already running
End If
' Consider this mandatory as soon as possible after On Error Resume Next
On Error GoTo 0
DoEvents
Set oNS = oOutlook.GetNamespace("MAPI")
'Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar)
' Error sorting the folder rather than items
'  was previously bypassed due to missing On Error GoTo 0
'oAppointments.Sort "[Start]"
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar).Items    '  """ & Format(startDate + 1, "ddddd h:nn AMPM") & """")
sfilter = ("[Start] > """ & Format(startDate, "ddddd h:nn AMPM") & """ and [Start] 

Anzeige

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige