Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Geburtstage mit aktuellem Datum hinweisen
#1
Hallo liebe Community,

Folgendes Problem habe ich:

Im Feld A1 habe ich das aktuelle Datum versehen mit =HEUTE()

Im Feld A2-A20 habe ich Mitglieder eines Vereins eingetragen.

Folgendes würde ich gerne bewerkstelligen:

Wenn zB Max Muster (In A2 stehen) am 21.11 Geburtstag hat soll wenn man die Tabelle aufmacht am 21.11 ein Fenster aufploppen (Eine Message) mit Max Muster hat Geburtstag. 
Das gleiche gilt natürlich für die anderen Mitglieder auch, wenn zB Steffi Graf (in A3) am 03.03 Geburtstag hat soll selbstverständlich am 03.03 wenn man die Tabelle öffnet eine Message aufploppen. 

Kann mir jemand dabei helfen ?!

Gruß
David
Antworten Top
#2
Moin!
Spiele bitte nicht mit irgendwelchen Fonts rum!
Bei 20 Zeilen würde ich eine schlichte bedingte Formatierung nehmen.
Formel ist: =UND(TAG(A2)=TAG(HEUTE());MONAT(A2)=MONAT(HEUTE())

Wenn Du wirklich (bei [sehr] großen Listen) VBA nutzen willst, solltest Du Dir die Range.Find-Methode (iVm Range.FindNext, falls es mal mehrere Sorgenkinder gibt) aneignen.
Die VBA-Hilfe gibt Dir einen Weg vor (incl. Beispielcode):
https://msdn.microsoft.com/de-de/vba/exc...xcel?f=255&MSPPError=-2147217396

Was machst Du Montags?
Interessieren dann die Jubilare des Wochenendes nicht mehr?  Huh

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
Hi,

hier mal eine Lösung (vor Jahren von Beverly erstellt), zwar nicht mit MsgBox, dafür mit bedingter Formatierung farbig hervorgerufen. Erklärungens tehen in der Tabelle.


Angehängte Dateien
.xls   geburtstag_heute_ermitteln_zellen_einfaerben_2017.xls (Größe: 39,5 KB / Downloads: 13)
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#4
Hallo liebe Community,

Sorry wegen dem Fonts Disaster hatte einen Text woanders angefertigt und ihn dann hineinkopiert, sorry nochmal.

Da ich leider nicht wirklich sehr begabt mit in VBA würde ich gerne auf eure Hilfe zurückgreifen, natürlich nur wenn jemand sich dazu bereiterklärt und auch Lust hat.

Wie gesagt in A1 ist mit =HEUTE() das aktuelle Datum versehen.

Dann habe ich in A2 „Mustermann“, in A3 „Altmann“, in A4 „Meier“ usw stehen. (Nur die Namen!)
Die Geburtstage sollen in den Feldern nicht drin stehen, sondern in einem anderem Tabellenblatt namens „Bday“. Genauso in der Reihenfolge wie die Mitglieder, also im Tabellenblatt „Bday“ in Zelle A2 der Geburtstag von „Mustermann“, in A3 der Geburtstag von „Altmann“ usw. (Insgesamt sind es 40Mitglieder)

Danke Ralf für den Hinweis!
Sofern man nun als Beispiel am 30.11 die Tabelle öffnet möchte ich gerne das zuerst eine MsgBox aufgeht und drin steht „Mustermann hat Geburtstag“. (Wenn Mustermann am 30.11 Bday hat)

Nachtrag (dank dem Hinweis von Ralf): Mache ich die Tabelle am Montag auf und jemand hatte bis zu 2Tage vorher Geburtstag soll eine MsgBox aufgehen und drin stehen „Mustermann hatte am ... Geburtstag“
Bis zu 2Tage nur weil ich sonst die Befürchtung habe dass er mir alle vom ganzen Jahr anzeigen würde ?

Kann mir jemand da mit VBA helfen? Für mich ist das schon sehr kompliziert da ich nicht sehr viel Ahnung von der Materie habe.

Ich bedanke mich schon mal im Voraus für eure Hilfe.

Gruß
David
Antworten Top
#5
Schaue mal in die angehängte Datei.
Sie beinhaltet zunächst mal "simple" Formellösungen (die man sicherlich auch mit AGGREGAT() abbilden kann, was ich gleich mal versuche).
LMN
1Heute29. November
2GeburtsdatumNameVorname
329.11.1973Name 1575Vorname 1575
429.11.1977Name 1150Vorname 1150
529.11.1978Name 0465Vorname 0465

ZelleFormel
M1=TEXT(HEUTE();"TT. MMMM")
L3{=WENNFEHLER(INDEX($A:$A;KKLEINSTE(WENN($B$1:$B$2000=M$1;ZEILE($1:$2000));ZEILE($A1)));"")}
M3{=WENNFEHLER(INDEX($C:$C;KKLEINSTE(WENN($B$1:$B$2000=M$1;ZEILE($1:$2000));ZEILE($A1)));"")}
N3{=WENNFEHLER(INDEX($D:$D;KKLEINSTE(WENN($B$1:$B$2000=M$1;ZEILE($1:$2000));ZEILE($A1)));"")}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Außerdem ein Makro RPP, welches folgenden Dialog öffnet:
   
Die Datei ist absichtlich etwas größer, damit sie auch etwas auszuwerten hat. ;)

Gruß Ralf


Angehängte Dateien
.xlsm   Geburtstagsliste.xlsm (Größe: 103,54 KB / Downloads: 6)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Nachgereicht noch die versprochene AGGREGAT-Version.
Für L3 wäre dies dann:
=WENNFEHLER(INDEX($A:$A;AGGREGAT(15;6;ZEILE(A$1:A$2000)/($B$1:$B$2000=M$1);ZEILE($A1)));"")

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste