XL 2016 Alerte excel

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

  • DOUBLONS 03-04-2024.xlsx
    40.2 KB · Affichages: 6
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...

job75

XLDnaute Barbatruc
Bonjour marc94600,

Voyez le fichier .xlsm joint et ces 2 macros, d'abord dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AZ2", .Range("AZ" & .Rows.Count).End(xlUp))
        If IsDate(c) Then Application.OnTime c, "Alerte"
    Next
End With
End Sub
Ensuite dans Module1 :
VB:
Sub Alerte()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AZ2", .Range("AZ" & .Rows.Count).End(xlUp))
        If IsDate(c) Then
            If c <= Date And .Cells(c.Row, "BG") = "" Then
                MsgBox "Echéance " & .Cells(c.Row, "B") & " " & c
                .Cells(c.Row, "BG") = "X"
            End If
        End If
    Next
End With
End Sub
A+
 

Pièces jointes

  • DOUBLONS 03-04-2024.xlsm
    48.3 KB · Affichages: 14

marc94600

XLDnaute Occasionnel
image1.png
image 1
 

job75

XLDnaute Barbatruc
Bonjour marc94600, nat54,

Les valeurs en colonne AZ doivent être des dates c'est à dire des nombres.

Dans votre fichier ce sont probablement des textes, convertissez-les.

On peut faire faire les conversions par les macros en utilisant CDate :
VB:
Private Sub Workbook_Open()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AZ2", .Range("AZ" & .Rows.Count).End(xlUp))
        If IsDate(c) Then Application.OnTime CDate(c), "Alerte"
    Next
End With
End Sub
VB:
Sub Alerte()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AZ2", .Range("AZ" & .Rows.Count).End(xlUp))
        If IsDate(c) Then
            If CDate(c) <= Date And .Cells(c.Row, "BG") = "" Then
                MsgBox "Echéance " & .Cells(c.Row, "B") & " " & c
                .Cells(c.Row, "BG") = "X"
            End If
        End If
    Next
End With
End Sub
A+
 

marc94600

XLDnaute Occasionnel
Bonjour marc94600, nat54,

Les valeurs en colonne AZ doivent être des dates c'est à dire des nombres.

Dans votre fichier ce sont probablement des textes, convertissez-les.

On peut faire faire les conversions par les macros en utilisant CDate :
VB:
Private Sub Workbook_Open()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AZ2", .Range("AZ" & .Rows.Count).End(xlUp))
        If IsDate(c) Then Application.OnTime CDate(c), "Alerte"
    Next
End With
End Sub
VB:
Sub Alerte()
Dim c As Range
With Sheets("HPM_ARCHIVES")
    For Each c In .Range("AZ2", .Range("AZ" & .Rows.Count).End(xlUp))
        If IsDate(c) Then
            If CDate(c) <= Date And .Cells(c.Row, "BG") = "" Then
                MsgBox "Echéance " & .Cells(c.Row, "B") & " " & c
                .Cells(c.Row, "BG") = "X"
            End If
        End If
    Next
End With
End Sub
A+
 

marc94600

XLDnaute Occasionnel
Bonjour
La formule fonctionne bien mais j'ai des dates qui ne sont pas pris en compte
(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.)
Je ne comprend pas car tout est correcte quand aux dates.

merci à vous
 

marc94600

XLDnaute Occasionnel
Bonjour tout le monde
sur ma programmation je retrouve des erreurs. toutes les dates ne sont pas reconnues...
Je souhaite avoir une alerte des sociétés dont la fin d'habilitation(H) arrive à échéance. L'alerte devra intervenir à H-365 jours.
Dans ma programmation actuelle j'ai des dates qui ne sont pas reconnues.
Voilà
j'espère que j'ai pu me faire comprendre?
merci à vous
 

Pièces jointes

  • DOUBLONS 03-04-2024.xlsm
    56.7 KB · Affichages: 7

Laurent78

XLDnaute Occasionnel
Bonjour,
En espérant ne pas déranger, il y a un truc que je ne comprends pas la colonne AY est intitulée "durée de l'habilitation" et pourtant il semblerait que le contenu soit des date. Et la colonne AZ "Date de fin de l'habilitation" est vide. Il n'y a pas un truc qui cloche ?
Cdlt
 

marc94600

XLDnaute Occasionnel
Bonjour Laurent
Bien sur que non vous ne pouvez pas déranger...
Concernant la date de fin d'habilitation est vide car c'est une mesure préventive et donc exceptionnelle.
Je n'ai pas eu de réponse concernant ma précédente demande ou j'ai des dates qui ne sont pas en alerte dans mon tableau original.
 

Statistiques des forums

Discussions
313 243
Messages
2 096 509
Membres
106 645
dernier inscrit
hf10