Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1432to1436
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
Inhaltsverzeichnis

VBA - aktuelle Geburtstage anzeigen

VBA - aktuelle Geburtstage anzeigen
05.07.2015 14:34:36
WalterK
Hallo,
den Code habe ich hier gefunden, er zeigt beim Öffnen der Datei die heutigen Geburtstage an. Läuft prima.
Ich hätte gern, dass in der MSG-Box bei der Anzeige des Alters z.B. (50) rechts daneben das Wort "Runder Geburtstag" steht, wenn die Zahl durch 10 (ohne Rest) teilbar ist.
Option Explicit
Private Sub Workbook_Open()
Dim rng As Range
Dim strMsg As String
On Error Resume Next
With Sheets("Mitglieder")
For Each rng In .Range("E2:E" & Application.Max(2, .Cells(.Rows.Count, 5).End(xlUp).Row))
If DateSerial(Year(Date), Month(rng), Day(rng)) = Date Then
strMsg = strMsg & Left(.Cells(rng.Row, 3).Text & " " & .Cells(rng.Row, 4).Text & String( _
35, " "), 35) & vbTab & "(" & Year(Date) - Year(rng) & ")" & vbLf
End If
Next
End With
If Len(strMsg) Then
strMsg = "Geburtstage am " & Format(Date, "dddd, dd.MM.yyyy") & vbLf & vbLf & strMsg
MsgBox strMsg
End If
On Error GoTo 0
End Sub
Besten Dank für die Hilfe, Servus Walter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - aktuelle Geburtstage anzeigen
05.07.2015 15:38:29
Sepp
Hallo Walter,
Private Sub Workbook_Open()
  Dim rng As Range
  Dim strMsg As String
  
  On Error Resume Next
  
  With Sheets("Mitglieder")
    For Each rng In .Range("E2:E" & Application.Max(2, .Cells(.Rows.Count, 5).End(xlUp).Row))
      If DateSerial(Year(Date), Month(rng), Day(rng)) = Date Then
        strMsg = strMsg & Left(.Cells(rng.Row, 3).Text & " " & .Cells(rng.Row, 4).Text & String(35, " "), 35) & _
          vbTab & "(" & Year(Date) - Year(rng) & ")" & IIf(((Year(Date) - Year(rng)) Mod 10) = 0, vbTab & "Runder Geburtstag!", "") & vbLf
      End If
    Next
  End With
  
  If Len(strMsg) Then
    strMsg = "Geburtstage am " & Format(Date, "dddd, dd.MM.yyyy") & vbLf & vbLf & strMsg
    MsgBox strMsg
  End If
  
  On Error GoTo 0
End Sub


Gruß Sepp

Anzeige
Genau so. Danke Sepp! Servus, Walter o.T.
05.07.2015 15:50:28
WalterK

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige