Clever-Excel-Forum

Normale Version: VBA - Geburtstagserinnerung als MsgBox
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

nach einigem Googlen bin ich leider immer noch auf keine Lösung gestoßen, die ich verstehe..  Huh 

Ich möchte gerne, dass anhand der Geburtstage die in Spalte K meiner Tabelle stehen, jedes Mal beim Öffnen meiner Datei eine MsgBox erscheint & mir sagt, wer an diesem tag Geburtstag hat.

Wie müsste so ein Code aussehen?

Lieben Dank vorab
SteBen
Moin SteBen,

muss es zwingend VBA sein?

Mein Formelvorschlag:

Arbeitsblatt mit dem Namen 'Daten'
ABCDE
1Vor- und ZunameGeborenHS TT.MMaktuelles Alter in JahrenJubiläen
2Claire Grube13.01.6513.Jan5555
3Anna Nass27.04.6827.Apr51
4Heide Witzka08.05.7008.Mai4950
5Rainer Zufall12.02.6312.Feb57
6Ali Mente24.07.6424.Jul55
7Marion Etten30.07.9730.Jul22
8Roman Tiker01.09.6101.Sep58
9Mario Nette22.10.5822.Okt61
10Mary Huana12.02.9212.Feb28
11Peter Silie18.12.9518.Dez24

ZelleFormel
C2=DATUM(;MONAT(B2);TAG(B2))
D2=WENN(B2<>"";WENN(DATUM(JAHR(HEUTE());MONAT(B2);TAG(B2))<=HEUTE();JAHR(HEUTE())-JAHR(B2);JAHR(HEUTE())-JAHR(B2)-1);"")
E2=WENN((REST(JAHR(HEUTE())-JAHR(B2);5)=0)*((JAHR(HEUTE())-JAHR(B2))>49);JAHR(HEUTE())-JAHR(B2);"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Hilfsspalte C ausblenden.

Blatt 2 gibt die Meldung aus:

Arbeitsblatt mit dem Namen 'Tabelle3'
A
1Heutige Geburtstage
2
3Rainer Zufall
4Mary Huana
5
6
7
8
9
10
11
12

NameBezug
Daten=Tabelle1[#Alle]

ZelleFormel
A3=WENNFEHLER(INDEX(Daten!A:A;AGGREGAT(15;6;ZEILE(Daten!$C$2:$C$11)/(Daten!$C$2:$C$11=DATUM(;MONAT(HEUTE());TAG(HEUTE())));ZEILE(Daten!A1)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Das Blatt kann ansprechend formatiert werden:  [attachment=29686]
Hi Günther,

Danke für Deinen Vorschlag, aber VBA wäre für mich sinnvoller.

Hintergrund ist, dass die Datei mehrere Blätter enthält, man aber das Blatt mit den Stammdaten nur öffnet, wenn man einen neuen Kunden anlegt.
I.d.R. wird dann nur mit einem anderen Blatt gearbeitet, weshlab die MsgBox bei Öffnen der Datei praktischer wäre :)

Danke & Grüße
Hallo, :19:

dann so: :21:
[attachment=29689]
Servus,

cool, Danke, genau das wollte ich.
Kannst Du mir noch damit helfen, den jeweiligen Vornamen aus Spalte C & den Nachnamen aus Spalte D in die MsgBox zu kriegen?
Hallo, :19:

das "Offset" geht von Spalte K aus: :21:

Code:
strTMP = strTMP & rngZelle.Offset(, -8).Value & " " & rngZelle.Offset(, -7).Value & vbCrLf
Hi,


Huh 
Sorry, aber was muss ich jetzt ändern?

Ich habe den Code in "Diese Arbeitsmappe" geschrieben. Die Kundendaten stehen aber im Reiter "Kundendatenbank".

Was mach' ich falsch?
Hallo, :19:

hier wird mit dem Codenamen der Tabelle gearbeitet (der Name VOR der Klammer). Das ist bei dir "Tabelle5". Also Tabelle1 durch Tabell5 ersetzten und die Codezeile mit dem "Offset" anpassen. :21:
Hi,

klasse, jetzt hab ich's geschnallt :D

Danke für die Hilfe!