XL 2016 Alerte excel

  • Initiateur de la discussion Initiateur de la discussion marc94600
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

marc94600

XLDnaute Occasionnel
Bonjour,
Dans mon tableau je souhaiterai qu'il y ait une alerte lorsque la date de fin d'habilitation d'une société (-1 an) arrive à expiration.
dans mon tableau feuille HPM_ARCHIVES colonne AZ.
Les données du tableau sont fictives.
Merci à vous
Bien cordialement
Marc
 

Pièces jointes

Solution
Bonjour marc94600, le fil,

Je n'avais pas vu passer :
L'alerte devra intervenir à H-365 jours.
Il faut donc décaler les alertes d'un an, dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AY2", .Range("AY" & .Rows.Count).End(xlUp))
        If IsDate(c) Then Application.OnTime DateSerial(Year(c) - 1, Month(c), Day(c)), "Alerte"
    Next
End With
End Sub
et dans Module1 :
VB:
Sub Alerte()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AY2", .Range("AY" & .Rows.Count).End(xlUp))
        If IsDate(c) Then
            If DateSerial(Year(c) - 1, Month(c), Day(c)) <= Date And .Cells(c.Row, "BF") = "" Then...
Bonjour marc94600, le fil,

Je n'avais pas vu passer :
L'alerte devra intervenir à H-365 jours.
Il faut donc décaler les alertes d'un an, dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AY2", .Range("AY" & .Rows.Count).End(xlUp))
        If IsDate(c) Then Application.OnTime DateSerial(Year(c) - 1, Month(c), Day(c)), "Alerte"
    Next
End With
End Sub
et dans Module1 :
VB:
Sub Alerte()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AY2", .Range("AY" & .Rows.Count).End(xlUp))
        If IsDate(c) Then
            If DateSerial(Year(c) - 1, Month(c), Day(c)) <= Date And .Cells(c.Row, "BF") = "" Then
                MsgBox "Echéance " & .Cells(c.Row, "B") & " " & c
                .Cells(c.Row, "BF") = "X"
            End If
        End If
    Next
End With
End Sub
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
677
Réponses
5
Affichages
208
Réponses
4
Affichages
375
Réponses
15
Affichages
1 K
Retour