Geburtstage von Kontakten im Outlook Kalender anzeigen

4 06 2008

Wenn in einem Outlook Kontakt ein Geburtstag eingetragen wird und anschließend der Kontakt gespeichert wird, erzeugt Outlook anschließend automatisch ein Kalendereintrag für den Geburtstag. Soweit so gut. Wenn man jetzt Kontakte per PST oder andere Form in Outlook importiert, die Geburtstage enthalten, werden diese nicht automatisch in den Kalender eingetragen. Man müsste nun in jedem Kontakt manuell nochmal das Geburtstagsfeld editieren und den Kontakt speichern.

Das ist natürlich bei einer Menge von Kontakten sehr aufwändig! Deshalb habe ich im Internet ein VBA Makro für Outlook gefunden, welches das genau automatisiert für einen vorher ausgewählten Kontakte-Ordner durchführt.

Um das VBA Makro zu nutzen, muss man es auf folgende Weise in Outlook einfügen:

  1. ALT+F11 drücken (damit startet der Visual Basic Editor)
  2. Im linken Bereich den Baum „Projekt1″ solange expandieren, bis „ThisOutlookSession“ erscheint
  3. Doppelklick auf „ThisOutlookSession“ (damit öffnet sich im rechten Bereich ein Editorfenster
  4. Im Editorfenster unten stehenden Code per Copy & Paste einfügen
  5. Speichern und Editorfenster schließen

Nun kann man das Makro im Outlook starten, dazu:

  1. Im Menü „Extras“ -> „Makro“ -> „Makros“ auswählen
  2. In der sich öffnenden Dialogbox steht dann „ThisOutlookSession.BirthdayImport“ -> Hier einfach die Schaltfläche „Ausführen“ anklicken
  3. Im nun öffnenden Dialog den Kontakte-Ordner auswählen, in dem die Kontakte mit den Geburtstagen für den Kalender liegen
  4. Go!
Sub BirthdayImport()
Dim myFolder As MAPIFolder
Set myFolder = Session.PickFolder
For i = myFolder.Items.Count To 1 Step -1
myFolder.Items(i).Display
mybirthday = myFolder.Items(i).Birthday
myFolder.Items(i).Birthday = "12.12.2000 "
myFolder.Items(i).Birthday = mybirthday
myFolder.Items(i).Save
myFolder.Items(i).Close 0
Next i
End Sub

Hinweis: Ich übernehme keinerlei Haftung für irgendwelche auftretenden Schäden durch die Benutzung des hier beschriebenen Vorgehens!


Aktionen

Information

14 Antworten

5 06 2008
Outlook User

Manchmal sind die Lösungen so einfach!
Das Problem hatte ich schon öfters, Danke!

16 09 2008
Geburtstagserinnerung auf 5310 (s40) - Nokia Forum

[...] Sub BirthdayImport() Dim myFolder As MAPIFolder Set myFolder = Session.PickFolder For i = myFolder.Items.Count To 1 Step -1 myFolder.Items(i).Display mybirthday = myFolder.Items(i).Birthday myFolder.Items(i).Birthday = "12.12.2000 " myFolder.Items(i).Birthday = mybirthday myFolder.Items(i).Save myFolder.Items(i).Close 0 Next i End Sub 3. "Zurck" synchronisieren und schon befinden sich die Geburtstagseintrge am Nokia 5310. Dieser Methode funktioniert theoretisch auch mit anderen Nokiamodellen, die sich mittels PC Suite via Outlook synchronisieren lassen Links: Nokia/Outlook Synchronisation Aus importierten Kontaktdaten in Outlook Geburtstagseintrge erstellen [...]

31 12 2008
Nico

Super, vielen Dank.

So konnte ich endlich die vielen Geburtstagsduplikate im Kalender entsorgen:

Einfach Kalender nach „Geburtstage“ durchsuchen, löschen und mit dem Makro neu einkopieren.

Danke und guten Rutsch.

Nico

11 01 2009
simson2810

hey danke. super. hab ich schon lange gesucht.
funktioniert einwandfrei!!!
mfg simson2810

11 01 2009
GBG

Oh man…! Herzlichen Dank..!
Das hat mir ungemein geholfen..!
Ich dachte schon das ich alle Geburtstage wieder einzelnd einfügen muss…!

8 03 2009
Kacid

Funktioniert bei mir leider nicht, geht das Makro auch bei Office 2007?

16 03 2009
A. Schiemann

@Kacid: ja, es funktioniert bei Outlook 2007.

26 04 2009
lopf

Hallo zusammen, das Skript funktioniert grundsätzlich prima. Durch das Öffnen von jedem Kontakt, auch wenn er keinen Geburtstag enthält, ist es allerdings unnötig langwierig. Habe eine kleine „Verkürzung“ eingebaut, so dass nur Kontakte mit einem eingetragenen Geburtstag geöffnet und abgespeichert werden.

Sub BirthdayImport()
Dim myFolder As MAPIFolder
Set myFolder = Session.PickFolder
For i = myFolder.Items.Count To 1 Step -1
myname = myFolder.Items(i).LastName
mybirthday = myFolder.Items(i).Birthday
If mybirthday „01.01.4501″ Then
myFolder.Items(i).Display
myFolder.Items(i).Birthday = „12.12.2000 “
myFolder.Items(i).Birthday = mybirthday
myFolder.Items(i).Save
myFolder.Items(i).Close 0
End If
Next i
End Sub

26 04 2009
lopf

Zuvor genanntes Skript funktioniert so nicht, da einige Zeichen ausgefiltert wurden. In der Zeile
If mybirthday „01.01.4501″ Then’
fehlt das „Ungleich-Zeichen“

Das Skript wurde nur unter Windows getestet, auf anderen System kann ein leeres Geburtsdatumsfeld evtl. einen anderen Wert als „01.01.4501″ haben.

19 05 2009
soluter

Bei Outlook 2007 muß man das Geburtsdatum mit dem Wert „01.01.4501″ belegen sonst wird kein neuer Kalendereintrag vorgenommen.

Also: myFolder.Items(i).Birthday = “01.01.4501”

Grüße
Ralf

24 05 2009
berfh

leider funktioniert das Makro bei mir nicht und ich kann auch per nicht mehr ändern. Die Termine werden nur eingetragen wenn ich davor „Keines “ eingebe und speicher.
Jetzt würde ich gerne diesen Wert im Script verwenden, aber ich kenne den Wert dazu nicht und
myFolder.Items(i).Birthday = “Keines ” funtkioniert nicht.
Hat jemand eine Ahnung was ich machen soll?
LG
berfh

26 05 2009
Markus

Hallo zusammen,

bisher habe ich Outlook 2003 verwnedet, da hat das marko funktioniert. Nun verwende ich Outlook 2007 und habe zunächst folgende Fehlermeldung bekommen: „Typkonflikt: Der Datentyp des Parameters kann nicht erzwungen werden. Die …“

Problemlösung:
anstatt:
myFolder.Items(i).Birthday = “01.01.4501”
dies verwenden:
myFolder.Items(i).Birthday = Empty

Falls Verteilerlisten unter der „normalen“ Kontakten sind, kommt eine andere Fehlermeldung, hier empfielt sich der Work-around: Verteilerlisten löschen oder verschieben.

Hoffe das hilf euch ebenso weiter wie es mir geholfen hat…

6 09 2009
Nils

Moin,

läuft nicht, das Makro rattert zwar durch, aber eingetragen in den Kalender wird nix! :-(

Hoffe mir ist da noch zu helfen

9 11 2009
2 Jahre MSTechnology Blog :-) « MSTechnology

[...] eine Zahl: 6860 – Soviel Zugriffe hat der am häufigsten aufgerufene Artikel „Geburtstage von Kontakten im Outlook Kalender“ bisher [...]

Kommentieren