Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1024to1028
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

Termine aus Excel in Outlook übertragen ?

Termine aus Excel in Outlook übertragen ?
13.11.2008 23:18:00
Selma
Hallo Leute,
ich habe folgendes Makro gefunden, das mir die Termine (Geburtstage) aus Excel in Outlook als Termin überträgt.
In der Spalte A stehen die Namen und in Spalte B die Geburtstage.
Da es hier um Geburtstage handelt, sollen die Termine sich jährlich wiederholen.
Was muss ich ändern, um daraus einen Serientermin (jährlich) zu erstellen?

Sub Termin_nach_Outlook()
'Verweis auf Microsoft Outlook x.x Object Library muss gesetzt sein
'Gehe auf EXTRAS / VERWEIS und suche die entsprechende Library
Dim OutApp As Object, apptOutApp As Object
'Hier beginnen die Termine
Range("B2").Select
Do Until ActiveCell.Value = ""
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
'Datum und Uhrzeit
.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
'Termininfo
.Subject = "Geburtstag von: " & ActiveCell.Offset(0, -1).Value
'oder der Betreff steht in der Spalte rechts von den Terminen
'Zusätzlicher Text
.Body = ""
'ort
.Location = "geboren am:" & " " & ActiveCell.Offset(0, 0).Value
.Duration = "5"
'Erinnerung
.ReminderMinutesBeforeStart = 10
'mit Sound
.ReminderPlaySound = True
'Erinnerung wiederholen
.ReminderSet = True
.Categories = "Geburtstage"
'Termin speichern
.Save
End With
'Nächste Zelle auswählen
ActiveCell.Offset(1, 0).Select
'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal
Set apptOutApp = Nothing
Set OutApp = Nothing
Loop
MsgBox "Termine an Outlook übertragen!"
End Sub


Besten Dank im Voraus !
Liebe Grüße,
Selma

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 09:21:00
Werner
Hallo Selma,
versuch mal folgendes, indem Du in der With-Anweisung nachfolgenden Code eingibst:
    With apptOutApp
        '..... 
        Set jedesJahr = neuerTermin.GetRecurrencePattern   ' wiederkehrender Termin 
        jedesJahr.RecurrenceType = olRecursYearly          ' wiederkehrender Termin 
        '.... 
    End With


Gruß
Werner

Anzeige
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 09:58:00
Selma
Hallo Werner,
es geht auch nicht:

Sub Termin_nach_Outlook()
Dim OutApp As Object, apptOutApp As Object
'Hier beginnen die Termine
Range("B2").Select
Do Until ActiveCell.Value = ""
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
'Datum und Uhrzeit
.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
'Termininfo
.Subject = "Geburtstag von: " & ActiveCell.Offset(0, -1).Value
'oder der Betreff steht in der Spalte rechts von den Terminen
'Zusätzlicher Text
.Body = ""
'ort
.Location = "geboren am:" & " " & ActiveCell.Offset(0, 0).Value
.Duration = "5"
'Erinnerung
.ReminderMinutesBeforeStart = 10
'mit Sound
.ReminderPlaySound = True
'Erinnerung wiederholen
Set jedesJahr = neuerTermin.GetRecurrencePattern   ' wiederkehrender Termin
jedesJahr.RecurrenceType = olRecursYearly          ' wiederkehrender Termin
.ReminderSet = True
.Categories = "Geburtstage"
'Termin speichern
.Save
End With
'Nächste Zelle auswählen
ActiveCell.Offset(1, 0).Select
'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal
Set apptOutApp = Nothing
Set OutApp = Nothing
Loop
MsgBox "Termine an Outlook übertragen!"
End Sub


LG,
Selma

Anzeige
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 10:00:11
Werner
Hallo Selma,
sorry, Fehler von mir!
Hier der komplette Code, damit müsste es gehen.
Dim OutApp As Object, apptOutApp As Object
Dim OutPattern As RecurrencePattern

'Hier beginnen die Termine 
Range("B2").Select
Do Until ActiveCell.Value = ""
    Set OutApp = CreateObject("Outlook.Application")
    Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem) 
        With apptOutApp
            'Datum und Uhrzeit 
            .Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
            'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen 
            'Termininfo 
            .Subject = "Geburtstag von: " & ActiveCell.Offset(0, -1).Value
            'oder der Betreff steht in der Spalte rechts von den Terminen 
            'Zusätzlicher Text 
            .Body = ""
            'ort 
            '######################## eingefügt ########################### 
             Set OutPattern = apptOutApp.GetRecurrencePattern
             OutPattern.RecurrenceType = olRecursYearly
            '############################################################## 
            .Location = "geboren am:" & " " & ActiveCell.Offset(0, 0).Value
            .Duration = "5"
            'Erinnerung 
            .ReminderMinutesBeforeStart = 10
            'mit Sound 
            .ReminderPlaySound = True
            'Erinnerung wiederholen 
            .ReminderSet = True
            .Categories = "Geburtstage"
            'Termin speichern 
            .Save
        End With
    'Nächste Zelle auswählen 
    ActiveCell.Offset(1, 0).Select
    'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal 
    Set apptOutApp = Nothing
    Set OutApp = Nothing
Loop
MsgBox "Termine an Outlook übertragen!"
End Sub


Gruß
Werner

Anzeige
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 10:18:29
Selma
Hallo Werner,
hier Dim OutPattern As RecurrencePattern bleibt das Makro hängen und es kommt folgende Fehlermeldung:
Fehler beim Kompilieren
Benutzerdefinierter Typ nicht definiert

LG,
Selma
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 10:24:00
Werner
...hast Du unter:
Userbild
auch
Userbild
mit aufgenommen?
Gruß
Werner
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 11:15:57
Selma
Hallo Werner,
ja, der Verweis ist aufgenommen und trotzdem geht es nicht.
LG,
Selma
Anzeige
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 11:49:42
Selma
Hallo Werner,
mit deiner Datei funktioniert es ;)
Gibt es die Möglichkeit beim erneutem Ausführen des Makros die bereits eingetragene Termine nicht nochmal einzutragen?
Vielen Dank !
LG,
Selma
AW: Termine aus Excel in Outlook übertragen ?
14.11.2008 11:55:00
Werner
Hallo Selma,
bestimmt, habe aber leider keine Zeit mehr, daher lasse ich die Frage weiter offen.
LG
Werner
AW: Termine aus Excel in Outlook übertragen ?
16.11.2008 00:12:53
Werner
Hallo Selma,
ich habe mich eben noch mal kurz an Dein Problem gewagt.
Option Explicit


Function AppointmentExists(ByVal objOutlook As Object, ByVal datStart As Date, ByVal strSubject As String) As Boolean
   Dim objMapiFolder As Object
   Dim objCalendarItem As Object
   AppointmentExists = True
   Set objMapiFolder = objOutlook.GetNamespace("MAPI").GetDefaultFolder(9)  ' 9 = olFolderCalendar 
   For Each objCalendarItem In objMapiFolder.Items
      If objCalendarItem.Subject = strSubject And _
         Month(objCalendarItem.Start) = Month(datStart) And _
         Day(objCalendarItem.Start) = Day(datStart) Then
         Exit Function
      End If
   Next objCalendarItem
   AppointmentExists = False
End Function


Private Sub Termin_nach_Outlook_Click()
Dim OutApp As Object, apptOutApp As Object
Dim OutPattern As RecurrencePattern
Dim objOutlook As Object
Dim objAppointmentItem As Object
   Dim datStart As Date
   Dim strSubject As String
   Dim lngZeile As Long
'Hier beginnen die Termine 
Range("B2").Select
lngZeile = 2
Do Until Cells(lngZeile, 1).Value = ""
    datStart = Cells(lngZeile, 2).Value & " 08:00:00"
    strSubject = "Geburtstag von: " & Cells(lngZeile, 1).Value

    Set OutApp = CreateObject("Outlook.Application")
    Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem) 
        If Not AppointmentExists(OutApp, datStart, strSubject) Then
        With apptOutApp
            'Datum und Uhrzeit 
            .Start = datStart
            'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen 
            'Termininfo 
            .Subject = strSubject
            'oder der Betreff steht in der Spalte rechts von den Terminen 
            'Zusätzlicher Text 
            .Body = ""
            'ort 
            '######################## eingefügt ########################### 
             Set OutPattern = apptOutApp.GetRecurrencePattern
             OutPattern.RecurrenceType = olRecursYearly
            '############################################################## 
            .Location = "geboren am:" & " " & datStart
            .Duration = "5"
            'Erinnerung 
            .ReminderMinutesBeforeStart = 10
            'mit Sound 
            .ReminderPlaySound = True
            'Erinnerung wiederholen 
            .ReminderSet = True
            .Categories = "Geburtstage"
            'Termin speichern 
            .Save
        End With
      End If
    'Nächste Zelle auswählen 
    'ActiveCell.Offset(1, 0).Select 
    lngZeile = lngZeile + 1
    'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal 
    Set apptOutApp = Nothing
    Set OutApp = Nothing
   Set objOutlook = Nothing
Loop
   'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal 
   MsgBox "Termine übertragen"
End 
Dieser VBA-Code prüft alle Outlook-Termine auf Subjekt (Bezeichnung) und Datum ohne Start, also Tag, Monat und Jahr.
Ich habe das deswegen so eingestellt, dass die Plausikontrolle unabhängig von der Uhrzeit ist.
Diese ist aber im Objekt: "objCalendarItem.Start" enthalten.
Daher die Extrahierung nach Tag, Monat und Jahr.
So werden die Daten nur einmalig übernommen.
hier die Datei:
https://www.herber.de/bbs/user/56819.xls
Alle anderen Anpassungen müsstest Du noch übernehmen.
Der VBA-Code ist nach Deinem Beispiel aufgebaut, also Spalte "A" = Subjekt (Bezeichnung, bzw. hier der Name) und in Spalte "B" das Datum.
Du könntest den Code erweitern, indem Du z.B. in Spalte "C" die Dauer eingibst etc. pp.
Gruß
Werner
Anzeige
AW: Termine aus Excel in Outlook übertragen ?
16.11.2008 00:12:59
Werner
Hallo Selma,
ich habe mich eben noch mal kurz an Dein Problem gewagt.
Option Explicit


Function AppointmentExists(ByVal objOutlook As Object, ByVal datStart As Date, ByVal strSubject As String) As Boolean
   Dim objMapiFolder As Object
   Dim objCalendarItem As Object
   AppointmentExists = True
   Set objMapiFolder = objOutlook.GetNamespace("MAPI").GetDefaultFolder(9)  ' 9 = olFolderCalendar 
   For Each objCalendarItem In objMapiFolder.Items
      If objCalendarItem.Subject = strSubject And _
         Month(objCalendarItem.Start) = Month(datStart) And _
         Day(objCalendarItem.Start) = Day(datStart) Then
         Exit Function
      End If
   Next objCalendarItem
   AppointmentExists = False
End Function


Private Sub Termin_nach_Outlook_Click()
Dim OutApp As Object, apptOutApp As Object
Dim OutPattern As RecurrencePattern
Dim objOutlook As Object
Dim objAppointmentItem As Object
   Dim datStart As Date
   Dim strSubject As String
   Dim lngZeile As Long
'Hier beginnen die Termine 
Range("B2").Select
lngZeile = 2
Do Until Cells(lngZeile, 1).Value = ""
    datStart = Cells(lngZeile, 2).Value & " 08:00:00"
    strSubject = "Geburtstag von: " & Cells(lngZeile, 1).Value

    Set OutApp = CreateObject("Outlook.Application")
    Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem) 
        If Not AppointmentExists(OutApp, datStart, strSubject) Then
        With apptOutApp
            'Datum und Uhrzeit 
            .Start = datStart
            'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen 
            'Termininfo 
            .Subject = strSubject
            'oder der Betreff steht in der Spalte rechts von den Terminen 
            'Zusätzlicher Text 
            .Body = ""
            'ort 
            '######################## eingefügt ########################### 
             Set OutPattern = apptOutApp.GetRecurrencePattern
             OutPattern.RecurrenceType = olRecursYearly
            '############################################################## 
            .Location = "geboren am:" & " " & datStart
            .Duration = "5"
            'Erinnerung 
            .ReminderMinutesBeforeStart = 10
            'mit Sound 
            .ReminderPlaySound = True
            'Erinnerung wiederholen 
            .ReminderSet = True
            .Categories = "Geburtstage"
            'Termin speichern 
            .Save
        End With
      End If
    'Nächste Zelle auswählen 
    'ActiveCell.Offset(1, 0).Select 
    lngZeile = lngZeile + 1
    'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal 
    Set apptOutApp = Nothing
    Set OutApp = Nothing
   Set objOutlook = Nothing
Loop
   'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal 
   MsgBox "Termine übertragen"
End 
Dieser VBA-Code prüft alle Outlook-Termine auf Subjekt (Bezeichnung) und Datum ohne Start, also Tag, Monat und Jahr.
Ich habe das deswegen so eingestellt, dass die Plausikontrolle unabhängig von der Uhrzeit ist.
Diese ist aber im Objekt: "objCalendarItem.Start" enthalten.
Daher die Extrahierung nach Tag, Monat und Jahr.
So werden die Daten nur einmalig übernommen.
hier die Datei:
https://www.herber.de/bbs/user/56819.xls
Alle anderen Anpassungen müsstest Du noch übernehmen.
Der VBA-Code ist nach Deinem Beispiel aufgebaut, also Spalte "A" = Subjekt (Bezeichnung, bzw. hier der Name) und in Spalte "B" das Datum.
Du könntest den Code erweitern, indem Du z.B. in Spalte "C" die Dauer eingibst etc. pp.
Gruß
Werner
Anzeige
AW: Termine aus Excel in Outlook übertragen ?
16.11.2008 23:14:06
Selma
Vielen Dank Werner !
Liebe Grüße,
Selma
AW: Termine aus Excel in Outlook übertragen ?
17.11.2008 06:46:00
Werner
Hallo Selma,
hier noch mal die Datei, jedoch als ganztägiger Serien-Termin. (Geburtstag)
Der VBA-Code erkennt ob der Serientermin noch vorhanden ist.
Wird aus einer Terminreihe "nur" ein Termin gelöscht, wird auch kein neuer eingetragen.
https://www.herber.de/bbs/user/56843.xls
Microsoft Excel Objekt Tabelle1
Option Explicit 
 
 
Function OutTerminExist(ByVal OutApp As Object, ByVal datStart As Date, ByVal strSubject As String) As Boolean 
    Dim OutMapiFolder As Object 
    Dim OutCalendarItem As Object 
    OutTerminExist = True 
    Set OutMapiFolder = OutApp.GetNamespace("MAPI").GetDefaultFolder(9)  ' 9 = olFolderCalendar 
    For Each OutCalendarItem In OutMapiFolder.Items 
        If OutCalendarItem.Subject = strSubject And _
            Month(OutCalendarItem.Start) = Month(datStart) And _
            Day(OutCalendarItem.Start) = Day(datStart) Then 
            Exit Function 
        End If 
    Next OutCalendarItem 
    OutTerminExist = False 
End Function 
 
 
Private Sub Termin_nach_Outlook_Click() 
    Dim OutApp As Object 
    Dim apptOutApp As Object 
    Dim OutPattern As RecurrencePattern 
    Dim datStart As Date 
    Dim strSubject As String 
    Dim lngZeile As Long 
    lngZeile = 2                                             '1. Zeile der Geburtstagseinträge der Exceltabelle 
    Do Until Cells(lngZeile, 1).Value = "" 
        Set OutApp = CreateObject("Outlook.Application") 
        Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem) 
        datStart = Cells(lngZeile, 2).Value '  & " 08:00:00" 
        strSubject = "Geburtstag von: " & Cells(lngZeile, 1).Value 
        If Not OutTerminExist(OutApp, datStart, strSubject) Then 
            With apptOutApp 
                .Start = datStart                            'Datum und Uhrzeit 
                .AllDayEvent = True                          ' für ganztägig 
                .Subject = strSubject 
                .Body = "" 
                Set OutPattern = apptOutApp.GetRecurrencePattern 
                OutPattern.RecurrenceType = olRecursYearly  ' wiederkehrender Termin 
                .Location = "geboren am:" & " " & datStart 
                .Duration = "5" 
                .ReminderMinutesBeforeStart = 10             'Erinnerung 
                .ReminderPlaySound = True                    'mit Sound 
                .ReminderSet = True                          'Erinnerung wiederholen 
                .Categories = "Geburtstage" 
                .Save                                        'Termin speichern 
            End With 
            Cells(lngZeile, 3).Value = "eingetragen" 
        Else: 
            Cells(lngZeile, 3).Value = "vorhanden!" 
        End If 
        lngZeile = lngZeile + 1 
        'Variablen leeren 
        Set apptOutApp = Nothing 
        Set OutApp = Nothing 
    Loop 
    MsgBox "Termine übertragen" 
End Sub 
 
 
 
 
 
 


Gruß
Werner

Anzeige
AW: Termine aus Excel in Outlook übertragen ?
17.11.2008 16:35:58
Selma
Vielen, vielen Dank !
Liebe Grüße,
Selma
AW: Termine aus Excel in Outlook übertragen ?
17.11.2008 16:48:00
Selma
Hallo Werner,
noch eine Ergänzung... Wenn ich nur Tag und Monat kenne. Das Jahr nicht.
Sollte als Jahr 1900 eingetragen werden, um zu vermeiden das es zum Debug kommt.
Der Geburtstag soll trotzdem eingetragen werden.
Geht das überhaupt ?
Liebe Grüße,
Selma
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 00:10:00
Werner
Hallo Selma,
ja, ergänze einfach den Code
mit:
Year(OutCalendarItem.Start) > 1900 And _

Function OutTerminExist(ByVal OutApp As Object, ByVal datStart As Date, ByVal strSubject As  _
String) As Boolean
Dim OutMapiFolder As Object
Dim OutCalendarItem As Object
OutTerminExist = True
Set OutMapiFolder = OutApp.GetNamespace("MAPI").GetDefaultFolder(9)  ' 9 = olFolderCalendar  _
For Each OutCalendarItem In OutMapiFolder.Items
If OutCalendarItem.Subject = strSubject And _
Year(OutCalendarItem.Start) > 1900 And _
Month(OutCalendarItem.Start) = Month(datStart) And _
Day(OutCalendarItem.Start) = Day(datStart) Then
Exit Function
End If
Next OutCalendarItem
OutTerminExist = False
End Function


Gruß
Werner

Anzeige
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 09:08:00
Selma
Hallo Werner,
ich habe in Zelle B15 dies stehen: 27.08.
Nachdem ich das Makro ausgeführt habe, wird das Termin in Outlook als 31.05.1907 (richtig wäre 27.08.1900) eingetragen.
Beim zweiten Ausführen des Makros steht in Zelle C15 "eingetragen", anstatt "vorhanden" ;)
Woran liegt das ?
Liebe Grüße,
Selma
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 11:12:35
Werner
Hallo Selma,
dann ist die von Dir genannte Zelle kein Datumsformat.
Da Du ja einen wiederkehrenden Termin eingestellt hast, ist das Jahr eigentlich egal, aber Du müsstest zumindest die Kurzform als Datum eintragen.
Was kommt den in Excel für ein Ergebnis, wenn Du in Zelle D15 mal folgende Formel einträgst:
=Jahr(C15)
Gruß
Werner
Anzeige
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 12:27:00
Selma
Hallo Werner,
die Zellen in Spalte B sind als TT.MM.JJJJ formatiert.
Mit der Formel =Jahr(B15) in Zelle D15 bekomme ich #WERT, wenn das Datum in Spalte B z.B. so 27.08. eingetragen ist.
Liebe Grüße,
Selma
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 12:38:00
Werner
Hallo Selma,
ja, genau das habe ich gemeint.
Das gleiche "Problem" hat Outlook, bzw. kein Problem, sondern Outlook "übersetzt" diese Zahl(!) in ein Datum, welches es aber nicht ist. (Siehe Deine Zelle #WERT), in Deinem Beispiel den 27.05.?
Du musst dieser Celle das richtige Datum schreiben, mit Jahresangabe, wie in den anderen Zellen auch.
Dann käuft das Makro auch richtig.
Das der VBA-Code neben dieser Zelle schreibt "scgon vorhanden", liegt daran, dass Outlook natürlich immer wieder das falsche Datum "27.05." nimmt und hier ein wiederkehrenden Termin erstellt, bzw. erstellen will, der dann schon vorhanden ist.
Gruß
Werner
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 12:55:00
Selma
Hallo Werner,
da ich manchmal die Jahresangabe nicht weiß, wäre es vielleicht besser beim vorhandenen TT.MM. (ohne Jahresangabe) JJJJ durch 1900 einzutragen und nachdem das Makro ausgeführt ist 1900 durch nichts ersetzen.
Beispiel vor dem Ausführen des Makros (bei fehlende Jahresangabe):
27.08.
Beispiel Ausführen des Makros (bei fehlende Jahresangabe):
27.08.1900
Beispiel nachdem Ausführen des Makros (bei fehlende Jahresangabe):
27.08.
Könntest du dies bitte in Code ergänzen?
Vielen Dank !
Liebe Grüße,
Selma
AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 13:20:21
Werner
Hallo Selma,
hier der Code:
Microsoft Excel Objekt Tabelle1
Option Explicit 
  
  
Function OutTerminExist(ByVal OutApp As Object, ByVal datStart As Date, ByVal strSubject As String) As Boolean 
    Dim OutMapiFolder As Object 
    Dim OutCalendarItem As Object 
    OutTerminExist = True 
    Set OutMapiFolder = OutApp.GetNamespace("MAPI").GetDefaultFolder(9)  ' 9 = olFolderCalendar 
    For Each OutCalendarItem In OutMapiFolder.Items 
        If OutCalendarItem.Subject = strSubject And _
            Month(OutCalendarItem.Start) = Month(datStart) And _
            Day(OutCalendarItem.Start) = Day(datStart) Then 
            Exit Function 
        End If 
    Next OutCalendarItem 
    OutTerminExist = False 
End Function 
  
  
Private Sub Termin_nach_Outlook_Click() 
    Dim OutApp As Object 
    Dim apptOutApp As Object 
    Dim OutPattern As RecurrencePattern 
    Dim datStart As Date 
    Dim strSubject As String 
    Dim lngZeile As Long 
    Dim ohneJahr 
    lngZeile = 2                                             '1. Zeile der Geburtstagseinträge der Exceltabelle 
    ohneJahr = False 
    Do Until Cells(lngZeile, 1).Value = "" 
        Set OutApp = CreateObject("Outlook.Application") 
        Set apptOutApp = OutApp.CreateItem(1)                'olAppointmentItem) 
        If Right(Cells(lngZeile, 2).Value, 1) = "." Then     'keine Jahresangabe 
           datStart = Cells(lngZeile, 2).Value & "1900" 
           ohneJahr = True 
        Else: 
           datStart = Cells(lngZeile, 2).Value ' & " 08:00:00" 
           ohneJahr = False 
        End If 
        strSubject = "Geburtstag von: " & Cells(lngZeile, 1).Value 
        If Not OutTerminExist(OutApp, datStart, strSubject) Then 
            With apptOutApp 
                .Start = datStart                            'Datum und Uhrzeit 
                .AllDayEvent = True                          ' für ganztägig 
                .Subject = strSubject 
                .Body = "" 
                Set OutPattern = apptOutApp.GetRecurrencePattern 
                OutPattern.RecurrenceType = olRecursYearly  ' wiederkehrender Termin 
                If ohneJahr Then 
                   .Location = Cells(lngZeile, 2).Value & " Jahr unbekannt!" 
                Else: 
                   .Location = "geboren am:" & " " & datStart 
                End If 
                .Duration = "5" 
                .ReminderMinutesBeforeStart = 10             'Erinnerung 
                .ReminderPlaySound = True                    'mit Sound 
                .ReminderSet = True                          'Erinnerung wiederholen 
                .Categories = "Geburtstage" 
                .Save                                        'Termin speichern 
            End With 
            Cells(lngZeile, 3).Value = "eingetragen" 
        Else: 
            Cells(lngZeile, 3).Value = "vorhanden!" 
        End If 
        lngZeile = lngZeile + 1 
        'Variablen leeren 
        Set apptOutApp = Nothing 
        Set OutApp = Nothing 
    Loop 
    MsgBox "Termine übertragen" 
End Sub 


Gruß
werner

AW: Termine aus Excel in Outlook übertragen ?
18.11.2008 14:33:47
Selma
Hallo Werner,
super Idee mit "Jahr unbekannt". Besser als 1900 ;)
Wenn ich das Jahr hinterher kenne, gibt es die Möglichkeit das Termin mit "Geburtstag von: xxxxxxxx" (steht in Outlook im Betreff) in Outlook zu löschen oder "geboren am: xxxxx" (steht in Outlook im Termin-/Besprechungsort) zu aktualisieren?
Liebe Grüße,
Selma
In Outllook über die Suchfunktion gehen...
18.11.2008 15:22:00
Werner
Hallo Selma,
in der Kalenderansicht auf:
Extras
--Suchen
--erweiterte Suche gehen

und dort die "unbekannten Jahre" herausfiltern und diejenigen löschen.
Dann, in Excel wieder das Makro, mit erneuerten Jahrszahlen, starten.
Gruß
Werner
AW: In Outllook über die Suchfunktion gehen...
18.11.2008 16:52:00
Selma
Hallo Werner,
vielen, vielen Dank !
Liebe Grüße,
Selma

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige