Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Geburtstagsliste

Geburtstagsliste
27.09.2007 14:20:26
Werner
Hallo zusammen,
ich habe eine Geburtstagsdatei, wenn ich diese öffne, kommt eine MsgBox, wo draufstht, wer heute Geburtstag hat.
Wenn ich auf den Button OK klicke, soll in einer 2. MsgBox alle aufgelistet werden, die in den nächsten 10 Tagen geburtstag haben.
Es soll der Vorname, Nachname, Geburtsdatum und in wieviel Tagen der Kollege Geburtstag hat drinn stehen.
Meine Datei habe ich mal hochgeladen.
Gruß Werner

Die Datei https://www.herber.de/bbs/user/46381.xls wurde aus Datenschutzgründen gelöscht


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geburtstagsliste
27.09.2007 15:08:47
Mag
Hi,
Dim Meldung1 As String, Meldung2 As String, i As Long, j As Integer, k As Integer
i = 2
Do Until Cells(i, 1).Value = ""
If Month(Cells(i, 3).Value) = Month(Date) And Day(Cells(i, 3).Value) = Day(Date) Then
Meldung1 = Meldung1 & Chr(10) & Cells(i, 3) & " " & Cells(i, 2) & " " & Cells(i, 1) & _
" wird heute " & Year(Date) - Year(Cells(i, 3).Value) & " Jahre alt!"
End If
j = DateDiff("d", Date, DateSerial(Year(Date), Month(Cells(i, 3).Value), Day(Cells(i, 3).Value)))
If j > 0 And j Meldung2 = Meldung2 & Chr(10) & j & " Tage:" & " " & Cells(i, 2).Value & " " & Cells(i, 1).Value & " " & _
Cells(i, 3).Value
End If
i = i + 1
Loop
k = MsgBox("Geburtstage:" & Meldung1, vbOKCancel, "Info")
If k = vbOK Then MsgBox "Geburtstage in den nächsten 10 Tagen:" & Meldung2
Gruss

Anzeige
AW: Geburtstagsliste
27.09.2007 15:58:03
Mag
... etwas optimiert:
Option Explicit

Private Sub Workbook_Open()
Dim Meldung1 As String, Meldung2 As String, i As Long, Differenz As Integer
i = 2
Do Until Cells(i, 1).Value = ""
Differenz = DateDiff("d", Date, DateSerial(Year(Date), Month(Cells(i, 3).Value), Day(Cells( _
i, 3).Value)))
If Differenz = 0 Then
Meldung1 = Meldung1 & Chr(10) & Cells(i, 3) & " " & Cells(i, 2) & " " & Cells(i, 1) & _
" wird heute " & Year(Date) - Year(Cells(i, 3).Value) & " Jahre alt!"
End If
If Differenz > 0 And Differenz  "" Then
MsgBox "Geburtstage in den nächsten 10 Tagen:" & Chr(10) & Meldung2, , "Info"
Else
MsgBox "Keine Geburtstage in den nächsten 10 Tagen!", , "Info"
End If
End If
End Sub


Gruss

Anzeige
AW: @Mag
27.09.2007 18:00:00
Peter
Hallo Mag,
dein Makro ist allerdings viel eleganter als meine 'Holperversion'.
Wenn du nun noch das kleiner 10 in kleier 11 änderst, werden auch die nächsten 10 Tage ausgewertet.
Zusätzlich noch Meldung2 = Meldung2 & Chr(10) & Format(Differenz, "00") macht die Anzeige 'sauber' ausgerichtet.
Gruß Peter

AW: @Mag
28.09.2007 08:26:00
Mag
Hi,
naja, hab' mir halt etwas mehr Zeit 'gegönnt'.
Gruss

AW: @Mag
28.09.2007 08:34:00
Werner
Hallo Mag und Peter,
vielen Dank für Eure Hilfe.
Funktionier perfekt.
Gruß Werner

AW: Geburtstagsliste
27.09.2007 15:44:11
Peter
Hallo Werner,
wenn ich deinen Text etwas einkürze, kommen die nächsten Geburtstage per MsgBox heraus - sonst schneidet MsgBox einfach ab:
https://www.herber.de/bbs/user/46390.xls
Gruß Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige