Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Automatische Erinnerung an Geburtstage

Frage Microsoft Microsoft Office

Mitglied: RhoLeonis

RhoLeonis (Level 1) - Jetzt verbinden

24.11.2009 um 13:40 Uhr, 11626 Aufrufe, 10 Kommentare

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!!
Mitglied: nube-li
24.11.2009 um 13:43 Uhr
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
Bitte warten ..
Mitglied: TsukiSan
25.11.2009 um 02:56 Uhr
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
Bitte warten ..
Mitglied: RhoLeonis
25.11.2009 um 08:53 Uhr
Hey... zunächst danke für die Hinweise.

Ich habe soweit einen Ansatz gefunden. Über den Windows-Aufgabenplaner kann ich mir täglich eine Mail zusenden lassen. Damit könnte ich auch einen Anhang verschicken, also z.B. die Tabelle. Die Idee, mit VB täglich die Tabelle zu filtern und dann die gefilterte Version zu versenden, hatte ich auch schon. Das Problem ist, dass ich in VB nicht so wirklich fit bin. Gibt es dazu vorgefertigte Scripts?!

Danke und Gruß zurück!!
Bitte warten ..
Mitglied: TsukiSan
26.11.2009 um 02:45 Uhr
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:
01.
Dim MyPfad 
02.
Dim Zeile 
03.
Dim GebDatum(1000) 
04.
 
05.
MyPfad = "C:\Geburtstags.xls" 
06.
Zeile = 1 
07.
 
08.
Set objXLS = WScript.CreateObject("Excel.Application") 
09.
objXLS.Workbooks.Open MyPfad 
10.
objXLS.Visible = False 
11.
 
12.
for i = 1 to 1000 
13.
	Zeile = i 
14.
	GebDatum(i) = OBJXLS.Range("A" & Zeile).Text 
15.
	If mid(GebDatum(i),1,5)  = mid(Date,1,5) then 
16.
		 'Anweisung 
17.
	End If 
18.
next 
19.
 
20.
objXLS.Quit 
21.
 
22.
Set objXLS = nothing
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
Bitte warten ..
Mitglied: RhoLeonis
26.11.2009 um 11:30 Uhr
Hi Tsuki...

vielen Dank für das Script. Ich habe das mal ausprobiert, aber irgendwie läuft es noch nicht rund. Da ich VBS-DAU bin, kann es aber sein, dass ich was übersehen habe. Also hier ganz genau die Schritte, die ich gemacht habe:
- neue Textdatei erstellt, als test.vbs umbenannt und den Quelltext hineinkopiert
- Pfad, Dateiname und Spaltennamen angepasst
- Doppelklick auf test.vbs und es passiert scheinbar gar nix

Für mich stellt sich zunächst die Frage, wo das Ergebnis ausgegeben werden soll. In der ursprünglichen Tabelle oder in einer neuen?

Bin gerne bereit, mehr in VBS zu machen. Daher wäre das ein schöner Einstieg. Also wäre ich für weitere Hilfen dankbar...

Gruß
Rho Leonis
Bitte warten ..
Mitglied: nube-li
26.11.2009 um 13:35 Uhr
Hi

Gib mal statt ' Anweisung "MsgBox("Jemand hat Geburtstag") ein
sprich:

01.
If mid(GebDatum(i),1,5)  = mid(Date,1,5) then  
02.
   MsgBox("jemand hat Geburtstag") 
03.
else 
04.
   MsgBox("niemand hat geburtstag") 
05.
End If
Anweisung ist, was das Script machen soll wenn jemand Geburtstag hat

Gruss
Bitte warten ..
Mitglied: TsukiSan
27.11.2009 um 14:32 Uhr
@RhoLeonis,

wie nube-li schon geschrieben hat fügst du in Zeile 16 meines Scriptes seine Zeilen ein.
01.
'Anweisung
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!
01.
Dim MyPfad 
02.
Dim Zeile 
03.
Dim GebDatum(20) 
04.
Dim GebNamen(20) 
05.
 
06.
MyPfad = "C:\Geburtstags.xls" 
07.
Zeile = 1 
08.
 
09.
Set objXLS = WScript.CreateObject("Excel.Application") 
10.
objXLS.Workbooks.Open MyPfad 
11.
objXLS.Visible = False 
12.
 
13.
GebNamen(1) = "Leider niemand :-(" 
14.
for i = 1 to 20 
15.
	Zeile = i 
16.
	GebDatum(i) = OBJXLS.Range("A" & Zeile).Text 
17.
	If mid(GebDatum(i),1,5)  = mid(Date,1,5) then 
18.
		GebNamen(1) = "" 
19.
		GebNamen(i) = OBJXLS.Range("B" & Zeile).Text & vbCrLf 
20.
	End If 
21.
next 
22.
 
23.
Ausgabe = "Heute Haben Geburtstag:" & vbCrLf & "*********************" & vbCrLf & Join(GebNamen,"") 
24.
 
25.
wscript.Echo Ausgabe 
26.
 
27.
objXLS.Quit 
28.
Set objXLS = nothing
Gruss
Tsuki
Bitte warten ..
Mitglied: RhoLeonis
30.11.2009 um 08:04 Uhr
Ich bin begeistert. Das funktioniert so schon wunderbar und prinzipiell genau so, wie ich es gerne hätte...

Also erstmal herzlichen Dank!!

Perfekt wäre es, wenn die Ausgabe in irgendeiner Form per E-Mail versendet werden könnte. Also die Ausgabe entweder direkt in eine neue E-Mail oder in eine Datei, die dann versendet wird. Wenn das funktionieren sollte, wäre es perfekt. Wenn nicht, bin ich aber auch so schon sehr zufrieden...
Bitte warten ..
Mitglied: TsukiSan
30.11.2009 um 14:13 Uhr
also, du deklarierst am Anfang folgende Zeilen:
01.
    Set myOutlock = CreateObject("Outlook.Application") 
02.
    Set item = myOutlock.CreateItem(0) 
03.
    With item 
04.
        .Subject = "Geburtstage" 
05.
        .To = "MeineAdresse@Email.de" 
06.
    End With
dann fügst du in deiner Abfrage, ob jemand heute Geburtstag hat folgenden Code ein:
01.
With item 
02.
        .Body = .Body & GebNamen(i) 
03.
End With
und ganz ziemlich "unten", wenn dein Programm alle Daten aus deiner ExcelDatei ausgelesen hat, noch folgendes:
01.
Item.Send
Dann öffnen dein Outlook (Standart Outlook!) und schaue dir deinen Postausgang an.

Gruss
Tsuki
Bitte warten ..
Mitglied: RhoLeonis
01.12.2009 um 15:28 Uhr
Vielen Dank nochmal. Das hat mir sehr weitergeholfen....
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows 7
gelöst Automatische User Abmeldung nach Inaktivität (30s) (10)

Frage von IT-Blondi zum Thema Windows 7 ...

Outlook & Mail
Outlook Erinnerung mehrfach

Frage von Caro90 zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...