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.

VBA - Geburtstagserinnerung als MsgBox
#1
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
Antworten Top
#2
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:     
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
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
Antworten Top
#4
Hallo, :19:

dann so: :21:

.xlsb   WorkBook_Open_MsgBox_Geburtstag.xlsb (Größe: 15,19 KB / Downloads: 10)
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • SteBen
Antworten Top
#5
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?
Antworten Top
#6
Hallo, :19:

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

Code:
strTMP = strTMP & rngZelle.Offset(, -8).Value & " " & rngZelle.Offset(, -7).Value & vbCrLf
________
Servus
Case
Antworten Top
#7
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?


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#8
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:
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • SteBen
Antworten Top
#9
Hi,

klasse, jetzt hab ich's geschnallt :D

Danke für die Hilfe!
Antworten Top


Gehe zu:


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