Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Termin von Excel nach Outlook als Serientermin?

Forumthread: Termin von Excel nach Outlook als Serientermin?

Termin von Excel nach Outlook als Serientermin?
17.11.2013 16:50:01
Excel
Hallo an Alle!
Ich benötige mal wieder Eure Hilfe. Mit nachfolgendem Code übertrage ich Termine von Excel nach Outlook.
Option Explicit
Sub Outlooktermine_eintragen()
Dim OLApp           As Outlook.Application
Dim apptOutlook     As Outlook.AppointmentItem
Dim lastrow         As Integer
Dim OLCalName       As Object
Dim myPersCal       As Object
Dim i               As Integer
Dim Suchkriterium   As String
Dim intRow          As Integer
Set OLApp = CreateObject("Outlook.Application")
Set OLCalName = OLApp.GetNamespace("MAPI")
Set myPersCal = OLCalName.GetDefaultFolder(olFolderCalendar)
lastrow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
For intRow = 3 To lastrow
If Cells(intRow, 5)  "" Then
'Durchsuchen, ob es den Termin bereits gibt.
'Wenn ja, löschen
Suchkriterium = Cells(intRow, 2)
For i = myPersCal.Items.Count To 1 Step -1
If myPersCal.Items(i).Subject = Suchkriterium Then
myPersCal.Items(i).Delete
End If
Next
'Neuen Termin eintragen
Set apptOutlook = OLApp.CreateItem(olAppointmentItem)
With apptOutlook
.Subject = Suchkriterium
.Body = Cells(intRow, 3).Value
.Location = Cells(intRow, 4).Value
.Start = Cells(intRow, 5)
.Duration = Cells(intRow, 6).Value
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
End If
Next
Set OLApp = Nothing
Set OLCalName = Nothing
Set myPersCal = Nothing
Set apptOutlook = Nothing
End Sub
Dabei stehen in Spalte B der Betreff, in Spalte C Text in dem Termin, in Spalte D der Ort des Termins, in Spalte E das Datum und die Uhrzeit (getrennt durch ein Leerzeichen) und in Spalte F die Dauer des Termins.
Nun möchte ich aber auch noch angeben, dass diverse Termine Serientermine sind. Ich möchte also noch angeben, ob täglich, wöchentlich, monatlich oder jährlich und wann der Termin endet, also nach x Terminen oder an einem bestimmten Datum.
Das Problem ist nur, ich weiß nicht wie. Daher hoffe ich auf Euer Wissen.
Ich hoffe also, dass mir jemand weiterhelfen kann.
Danke Euch schon mal im Vorraus,
Kasimir

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bitte nutze mich: Ich bin deine Archivsuche
17.11.2013 17:45:52
Kasimir
Hallo Martin!
Danke Dir für Deine Antwort, die mich aber leider nicht weiter bringt. Ich gehe mal davon aus, dass Du meine Fragestellung nicht bis zum Ende gelesen hast, denn den Link, den Du gepostet hast, beschäftigt sich nur mit dem Übertragen von Terminen, was bei mir ja bereits funktioniert (siehe VBA-Code Fragestellung), nicht aber mit Serienterminen.
Eventuell hat ja noch jemand anderes eine Idee, wie ich in meinen VBA-Code aus der Fragestellung einen Serientermin wie beschrieben integrieren kann.
Danke nochmal für den Hilfeversuch,
kasimir

Anzeige
RecurrencePattern-Methode
17.11.2013 18:45:05
Tino
Hallo,
dann müsstest Du dich mit der RecurrencePattern-Methode beschäftigen.
Dazu würde ich im Outlook die VBA Hilfe verwenden,
dort ist eigentlich alles beschrieben was man braucht.
Hier ein Beispiel für einen monatlichen Serientermin der nach 5 Terminen Endet.
With .GetRecurrencePattern
'Beginn
.PatternStartDate = Cells(intRow, 5)
'Monatlich
.RecurrenceType = olRecursMonthly
'alle 1 Monate
.Interval = 1
'Endet nach Anzahl Terminen
.Occurrences = 5
'Oder Endet nach 365 Tagen
'.PatternEndDate = Cells(intRow, 5) + 365
End With
Gruß Tino

Anzeige
AW: RecurrencePattern-Methode
18.11.2013 05:15:25
Kasimir
Hallo Tino!
Danke Dir für Deine Hilfe. Auf die Idee mir die einzelnen Parameter in Outlook zu suchen bin ich ehrlich gesagt nicht gekommen.
Werde nun in die Outlookhilfe einlesen.
Besten Dank nochmal,
Kasimir
;
Anzeige
Anzeige

Infobox / Tutorial

Termine von Excel nach Outlook als Serientermin übertragen


Schritt-für-Schritt-Anleitung

Um Termine von Excel nach Outlook als Serientermine zu übertragen, kannst du den folgenden VBA-Code verwenden. Dieser Code baut auf dem vorhandenen Beispiel auf und erweitert es um die Möglichkeit, Serientermine zu erstellen:

Sub Outlooktermine_eintragen()
    Dim OLApp As Outlook.Application
    Dim apptOutlook As Outlook.AppointmentItem
    Dim lastrow As Integer
    Dim OLCalName As Object
    Dim myPersCal As Object
    Dim i As Integer
    Dim Suchkriterium As String
    Dim intRow As Integer
    Set OLApp = CreateObject("Outlook.Application")
    Set OLCalName = OLApp.GetNamespace("MAPI")
    Set myPersCal = OLCalName.GetDefaultFolder(olFolderCalendar)
    lastrow = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row
    For intRow = 3 To lastrow
        If Cells(intRow, 5) <> "" Then
            'Durchsuchen, ob es den Termin bereits gibt.
            Suchkriterium = Cells(intRow, 2)
            For i = myPersCal.Items.Count To 1 Step -1
                If myPersCal.Items(i).Subject = Suchkriterium Then
                    myPersCal.Items(i).Delete
                End If
            Next
            'Neuen Termin eintragen
            Set apptOutlook = OLApp.CreateItem(olAppointmentItem)
            With apptOutlook
                .Subject = Suchkriterium
                .Body = Cells(intRow, 3).Value
                .Location = Cells(intRow, 4).Value
                .Start = Cells(intRow, 5)
                .Duration = Cells(intRow, 6).Value
                .ReminderMinutesBeforeStart = 10
                .ReminderPlaySound = True
                .ReminderSet = True

                ' Serientermin hinzufügen
                With .GetRecurrencePattern
                    .PatternStartDate = Cells(intRow, 5)
                    .RecurrenceType = olRecursMonthly ' oder olRecursDaily, olRecursWeekly, etc.
                    .Interval = 1
                    .Occurrences = 5 ' Anzahl der Termine
                    ' .PatternEndDate = Cells(intRow, 5) + 365 ' oder nach einem bestimmten Datum
                End With

                .Save
            End With
        End If
    Next
    Set OLApp = Nothing
    Set OLCalName = Nothing
    Set myPersCal = Nothing
    Set apptOutlook = Nothing
End Sub

Achte darauf, dass die Daten in den entsprechenden Spalten in deiner Excel-Tabelle richtig eingegeben sind.


Häufige Fehler und Lösungen

  1. Serientermin wird nicht erstellt: Überprüfe, ob du die RecurrenceType und Occurrences korrekt angegeben hast. Stelle sicher, dass die Zellenwerte richtig eingelesen werden.

  2. Outlook gibt Fehlermeldungen aus: Stelle sicher, dass du die richtige Outlook-Version und die entsprechenden Berechtigungen hast, um auf den Kalender zuzugreifen.

  3. Termin wird nicht gelöscht: Wenn der Termin nicht gelöscht wird, könnte es daran liegen, dass der Betreff in Excel nicht exakt mit dem in Outlook übereinstimmt. Überprüfe die Schreibweise.


Alternative Methoden

Eine alternative Methode zur Erstellung von Serienterminen in Outlook ist die manuelle Erstellung im Outlook-Kalender. Du kannst einfach den gewünschten Termin erstellen und dann die Option "Serientermin" auswählen. Diese Methode ist nützlich, wenn du nur einen oder zwei Serientermine erstellen möchtest.


Praktische Beispiele

  • Monatlicher Serientermin: Wenn du jeden ersten Montag im Monat einen Termin erstellen möchtest, setze RecurrenceType auf olRecursMonthly und Interval auf 1.

  • Wöchentlicher Serientermin: Setze RecurrenceType auf olRecursWeekly und Interval auf 1, um wöchentliche Termine zu erstellen.

  • Jährlicher Serientermin: Wenn du einen jährlichen Geburtstag oder ein Jubiläum eintragen möchtest, stelle RecurrenceType auf olRecursYearly ein.


Tipps für Profis

  • Terminserie löschen: Wenn du eine bereits bestehende Terminserie in Outlook löschen möchtest, kannst du die Methode outlook terminserie löschen verwenden. Dies kann durch den Zugriff auf die Items-Sammlung und das Löschen des entsprechenden Objekts erfolgen.

  • Dynamische Daten verwenden: Statt feste Werte für die Serientermine zu verwenden, solltest du dynamische Daten aus deiner Excel-Tabelle beziehen, um die Flexibilität der Termine zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich Serientermine in Outlook ändern?
Du kannst die Serientermine in Outlook ändern, indem du den betreffenden Termin öffnest und die gewünschten Änderungen vornimmst.

2. Was muss ich tun, wenn der Termin nicht gespeichert wird?
Überprüfe, ob alle erforderlichen Felder im VBA-Code ausgefüllt sind und ob keine Fehler im Code vorhanden sind. Achte darauf, dass Outlook ordnungsgemäß funktioniert und keine Berechtigungsprobleme bestehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige