Bonjour GUY et le forum
Remplacer l'ancien code par celui-ci (prévision 5 jours avant la date réelle):
Private Sub Workbook_Open()
Dim TS As ListObject
Dim LaDate As Date
Dim DerLig As Long, R As Long, Nbre%, ID As String, IDRow As Long
Dim MonMessage1, MonMessage2 As String
Nbre = 0
Set TS = Range("Tableau1").ListObject
With TS '[Tableau1]
DerLig = .ListRows.Count
MonMessage1 = "Anniversaire(s) prévu(s) dans 5 jours: " & vbCrLf
MonMessage2 = "Aujourd'hui, il n'y a aucun anniversaire à fêter!!"
For R = 1 To DerLig
LaDate = DateSerial(Year(Date), Month(.DataBodyRange.Item(R, 3)), Day(.DataBodyRange.Item(R, 3)))
ID = .DataBodyRange.Item(R, 1)
IDRow = .DataBodyRange.Find(ID, LookIn:=xlValues, LookAt:=xlWhole).Row - .HeaderRowRange.Row
If LaDate = Date - 5 Then 'compare la date calculée à la date du jour
MonMessage1 = MonMessage1 & .DataBodyRange.Item(IDRow, 1) & "-" & .DataBodyRange.Item(R, 2) & "-" & .DataBodyRange.Item(R, 4) & vbCrLf
Nbre = Nbre + 1
End If
Next R
If Nbre <> 0 Then
MsgBox MonMessage1, vbInformation, "Texte à adapter" 'Affichage du Message1"
Else
MsgBox MonMessage2, vbInformation, "Texte à adapter" 'Affichage du Message2
End If
End With
End Sub
Cdt
Papy Henri