Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
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 Kalender Export per VBA

Outlook Kalender Export per VBA
05.08.2020 10:12:22
Nikolai
Hallo Zusammen,
gibt es die Möglichkeit in Outlook mit einem VBA Code den Kalender in eine Exceltabelle zu exportieren?
Dabei sollte nur folgendes exportiert werden:
Immer für das aktuelle Jahr
Spalte A: Termin Datum Beginn
Spalte B:Termin Beginn Uhrzeit
Spalte D:Termin Datum Ende
Spalte D:Termin Ende Uhrzeit
Spalte E: Ob Privat oder nicht
Spalte F: Ob Außer
Spalte G: Wem der Kalender gehört
Dies soll alle 30 Minuten aktualisiert werden und in einem ExcelWorkbook gespeichert werden.
Ich habe es zwar geschafft das Excel sich die Daten selber holt, aber so ist es sehr umständlich für die weitere Verwendung für die die Daten dann vorgesehen sind.
Der Code soll dann von 6 Mitarbeitern verwendet werden und somit 6 Excel Workbooks in einem Bestimmten Ordner erstellt werden. Es wäre zu umständlich das jeder der Mitarbeiter jeden Morgen die Exceldatei öffnet damit mein Code arbeiten kann. Outlook öffnet aber jeder von uns sowieso morgens.
Hier der Code den ich bis jetzt in Excel schreiben konnte:
Sub outlook_calendaritemsexport()
Dim o As Outlook.Application, R As Long
Set o = New Outlook.Application
Dim ons As Outlook.Namespace
Set ons = o.GetNamespace("MAPI")
Dim myfol As Outlook.Folder
Set myfol = ons.GetDefaultFolder(9)
Dim myapt As Outlook.AppointmentItem
Range("A1:z1").Value = Array("Von Datum", "Von Zeilt", "Bis Datum", "Bis Zeit", "Betreff")
R = 1000
For Each myapt In myfol.Items
Cells(R, 1).Value = myapt.Start
Cells(R, 2).Value = myapt.Start
Cells(R, 3).Value = myapt.End
Cells(R, 4).Value = myapt.End
Cells(R, 5).Value = myapt.Subject
R = R - 1
Next
Set o = Nothing
Set ons = Nothing
Set myfol = Nothing
Set myapt = Nothing
Application.OnTime Now + TimeValue("00:30:00"), "outlook_calendaritemsexport"
Cells.Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add2 Key:=Columns("A:A" _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Columns("A:Z")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Columns("A:A").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("B:B").Select
Selection.NumberFormat = "h:mm;@"
Columns("C:C").Select
Selection.NumberFormat = "m/d/yyyy"
Columns("D:D").Select
Selection.NumberFormat = "h:mm;@"
End Sub

Würde mich sehr über euer Hilfe freuen. :)

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook Kalender Export per VBA
05.08.2020 19:49:37
Oberschlumpf
Hi Nikolai,
zeig uns doch auch mal per Upload eine Bsp-Datei mit dem Tabellenaufbau und dem Code in der Datei.
Ciao
Thorsten
AW: Outlook Kalender Export per VBA
08.08.2020 07:17:57
Oberschlumpf
Na Nikolai,
kein weiteres Interesse an einer Antwort zu deiner Frage?
Ciao
Thorsten
AW: Outlook Kalender Export per VBA
10.08.2020 10:29:53
Nikolai
Hallo Thorsten,
danke für deine Nachricht. Habe sie jetzt erst gelesen da ich Donnerstag und Freitag nicht auf Arbeit war.
Mittlerweile habe ich einen Code der Funktioniert.
Option Explicit
Sub outlook_calendaritemsexport()
Dim o As Outlook.Application, R As Long
Set o = New Outlook.Application
Dim ons As Outlook.NameSpace
Set ons = o.GetNamespace("MAPI")
Dim myfol As Outlook.Folder
Set myfol = ons.GetDefaultFolder(9)
Dim myapt As Outlook.AppointmentItem
Dim oXLApp As Object, oXLwb As Object, oXLws As Object
Dim lRow As Long
On Error Resume Next
Set oXLApp = GetObject(, "Excel.Application")
If Err.Number  0 Then
Set oXLApp = CreateObject("Excel.Application")
End If
Err.Clear
On Error GoTo 0
oXLApp.Visible = True
Set oXLwb = oXLApp.Workbooks.Open("******.xlsx") '*Dateiname mit Verzeichnis festlegen
Set oXLws = oXLwb.Sheets("Tabelle1")
With oXLws
.Range("A:E").Clear
.Range("A1:E1").Value = Array("Von Datum", "Von Zeilt", "Bis Datum", "Bis Zeit", "Betreff")
R = 3
For Each myapt In myfol.Items
.Cells(R, 1).Value = myapt.Start
.Cells(R, 2).Value = myapt.Start
.Cells(R, 3).Value = myapt.End
.Cells(R, 4).Value = myapt.End
.Cells(R, 5).Value = myapt.Subject
R = R + 1
Next
Set o = Nothing
Set ons = Nothing
Set myfol = Nothing
Set myapt = Nothing
End With
End Sub

Vielleicht könntest du mir aber noch bei einer anderen Sache helfen.
Die Arbeitsmappe soll sich nach dem die Tabelle fertig ist speichern und schließen. (Bin zu blöd den richtigen Befehl zu finden)
Vielen Dank und Gruß
Nikolai
Anzeige

25 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige