Automatische Erinnerung an Geburtstage
Hallo!!
Ich habe mal wieder ein spezielles Problem. Ich habe eine Excel-Tabelle mit etwa 250 Datensätzen, die Name und Geburtstag von bestimmten Person beinhalten. Ich möchte nun irgendwie erreichen, dass ich an dem jeweiligen Tag erinnert werde, wenn eine dieser Personen Geburtstag hat. Wie das technisch umgesetzt wird, ist zunächst einmal egal. Ideal wäre eine Art täglicher Statusreport mit den jeweiligen Geburtstagen.
Mir ist bewusst, dass ich mich über die Kalenderfunktion von Outlook erinnern lassen kann. Dies ist allerdings aus zwei Gründen unpraktikabel. Zum einen möchte ich den Inhalt der Tabelle nicht in meinen Outlook-Kalender übertragen müssen. Zum anderen finde ich es sehr unübersichtlich, wenn ich jeden Morgen mehrere Erinnerugen bekomme. Da wäre ein o.g. Statusreport schon netter.
Umzusetzen sollte das ganze entweder mit einem Office-Produkt (ich hatte in dem Zusammenhang schon mal was von InfoPath gehört) oder mit einem kostenlosen Zusatztool oder am besten mit Windows-Bordmitteln. Zur Info: Ich habe Windows Vista oder XP und dazu Office 2007.
Danke für jeden Hinweis!!
Ich habe mal wieder ein spezielles Problem. Ich habe eine Excel-Tabelle mit etwa 250 Datensätzen, die Name und Geburtstag von bestimmten Person beinhalten. Ich möchte nun irgendwie erreichen, dass ich an dem jeweiligen Tag erinnert werde, wenn eine dieser Personen Geburtstag hat. Wie das technisch umgesetzt wird, ist zunächst einmal egal. Ideal wäre eine Art täglicher Statusreport mit den jeweiligen Geburtstagen.
Mir ist bewusst, dass ich mich über die Kalenderfunktion von Outlook erinnern lassen kann. Dies ist allerdings aus zwei Gründen unpraktikabel. Zum einen möchte ich den Inhalt der Tabelle nicht in meinen Outlook-Kalender übertragen müssen. Zum anderen finde ich es sehr unübersichtlich, wenn ich jeden Morgen mehrere Erinnerugen bekomme. Da wäre ein o.g. Statusreport schon netter.
Umzusetzen sollte das ganze entweder mit einem Office-Produkt (ich hatte in dem Zusammenhang schon mal was von InfoPath gehört) oder mit einem kostenlosen Zusatztool oder am besten mit Windows-Bordmitteln. Zur Info: Ich habe Windows Vista oder XP und dazu Office 2007.
Danke für jeden Hinweis!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 130121
Url: https://administrator.de/forum/automatische-erinnerung-an-geburtstage-130121.html
Ausgedruckt am: 23.12.2024 um 14:12 Uhr
10 Kommentare
Neuester Kommentar
hi
Wenn dann sonst abfragen einbauen..
If geburtstagsfeld/spalte/zeile/whatever =(HEUTE) then Rot hinterlegt else nada
Hoffe du kommst weiter..
Edit:
http://www.bilderload.com/bild/18933/200911241414047PEVE.jpg
Zelle D3 "=HEUTE()"
Spalte "Geburtsdatum" mit "Format" -> "Bedingte Formatierung" formatiert
Greez
Wenn dann sonst abfragen einbauen..
If geburtstagsfeld/spalte/zeile/whatever =(HEUTE) then Rot hinterlegt else nada
Hoffe du kommst weiter..
Edit:
http://www.bilderload.com/bild/18933/200911241414047PEVE.jpg
Zelle D3 "=HEUTE()"
Spalte "Geburtsdatum" mit "Format" -> "Bedingte Formatierung" formatiert
Greez
ich weiß nicht, wie die Excel-Spalten/-Zeilen bei dir aufgebaut sind, aber
so wie nube-li es schon angesetzt hat, kann man sich die Meldungen auf den
Monitor bringen lassen.
Du kannst nach dem booten ein Script laufen lassen, was die Excel-Datei kurz
durchliest, und alle Einträge, welche mit dem "heutigen" Tag im Einklang des Geburtstages stehen,
als Nachricht ausgeben lassen.
Das ginge zum Beispiel mit VBS- Ist ein Boardmittel und kostet nix
Gruss
Tsuki
so wie nube-li es schon angesetzt hat, kann man sich die Meldungen auf den
Monitor bringen lassen.
Du kannst nach dem booten ein Script laufen lassen, was die Excel-Datei kurz
durchliest, und alle Einträge, welche mit dem "heutigen" Tag im Einklang des Geburtstages stehen,
als Nachricht ausgeben lassen.
Das ginge zum Beispiel mit VBS- Ist ein Boardmittel und kostet nix
Gruss
Tsuki
hi RhoLeonis,
Du musst den Pfad und den Dateinamen der Excel-Datei anpassen, die Spalte, wo die Geburtstage stehen anpassen
und du weißt genau, wo die Namen stehen, in welcher Spalte.
in VBS sieht das zum Beispiel dann so aus:
in diesem Schnipsel wird die Reihe "A" von den Zeilen 1 bis 1000 in ein Array (GebDatum) eingelesen und mit dem aktuellen Datum verglichen. In meinem Beispiel gehe ich davon aus, dass dein Datumsformat TT.MM.JJJJ ist, dass heisst es werden nur TT.MM. miteinander verglichen. Das macht die "Mid-Funktion".
Wenn du Lust hast, dir was in VBS zu programmieren und noch Fragen hast, dann poste weiter.
Gruss
Tsuki
Du musst den Pfad und den Dateinamen der Excel-Datei anpassen, die Spalte, wo die Geburtstage stehen anpassen
und du weißt genau, wo die Namen stehen, in welcher Spalte.
in VBS sieht das zum Beispiel dann so aus:
Dim MyPfad
Dim Zeile
Dim GebDatum(1000)
MyPfad = "C:\Geburtstags.xls"
Zeile = 1
Set objXLS = WScript.CreateObject("Excel.Application")
objXLS.Workbooks.Open MyPfad
objXLS.Visible = False
for i = 1 to 1000
Zeile = i
GebDatum(i) = OBJXLS.Range("A" & Zeile).Text
If mid(GebDatum(i),1,5) = mid(Date,1,5) then
'Anweisung
End If
next
objXLS.Quit
Set objXLS = nothing
Wenn du Lust hast, dir was in VBS zu programmieren und noch Fragen hast, dann poste weiter.
Gruss
Tsuki
@RhoLeonis,
wie nube-li schon geschrieben hat fügst du in Zeile 16 meines Scriptes seine Zeilen ein.
it auskommentiert und an dieser Stelle kannst du eintragen, welche Aktionen in deinem Script dann ausgeführt werden sollen.
Das kann eine Messagebox üblicherweise sein.
Ich habe mein Beispielscript mal etwas angepasst. Du musst dann nochmals deine Änderungen übernehmen!
Gruss
Tsuki
wie nube-li schon geschrieben hat fügst du in Zeile 16 meines Scriptes seine Zeilen ein.
'Anweisung
Das kann eine Messagebox üblicherweise sein.
Ich habe mein Beispielscript mal etwas angepasst. Du musst dann nochmals deine Änderungen übernehmen!
Dim MyPfad
Dim Zeile
Dim GebDatum(20)
Dim GebNamen(20)
MyPfad = "C:\Geburtstags.xls"
Zeile = 1
Set objXLS = WScript.CreateObject("Excel.Application")
objXLS.Workbooks.Open MyPfad
objXLS.Visible = False
GebNamen(1) = "Leider niemand :-("
for i = 1 to 20
Zeile = i
GebDatum(i) = OBJXLS.Range("A" & Zeile).Text
If mid(GebDatum(i),1,5) = mid(Date,1,5) then
GebNamen(1) = ""
GebNamen(i) = OBJXLS.Range("B" & Zeile).Text & vbCrLf
End If
next
Ausgabe = "Heute Haben Geburtstag:" & vbCrLf & "*********************" & vbCrLf & Join(GebNamen,"")
wscript.Echo Ausgabe
objXLS.Quit
Set objXLS = nothing
Gruss
Tsuki
also, du deklarierst am Anfang folgende Zeilen:
dann fügst du in deiner Abfrage, ob jemand heute Geburtstag hat folgenden Code ein:
und ganz ziemlich "unten", wenn dein Programm alle Daten aus deiner ExcelDatei ausgelesen hat, noch folgendes:
Dann öffnen dein Outlook (Standart Outlook!) und schaue dir deinen Postausgang an.
Gruss
Tsuki
Set myOutlock = CreateObject("Outlook.Application")
Set item = myOutlock.CreateItem(0)
With item
.Subject = "Geburtstage"
.To = "MeineAdresse@Email.de"
End With
dann fügst du in deiner Abfrage, ob jemand heute Geburtstag hat folgenden Code ein:
With item
.Body = .Body & GebNamen(i)
End With
und ganz ziemlich "unten", wenn dein Programm alle Daten aus deiner ExcelDatei ausgelesen hat, noch folgendes:
Item.Send
Dann öffnen dein Outlook (Standart Outlook!) und schaue dir deinen Postausgang an.
Gruss
Tsuki