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
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...
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
Bonjour,
Quand je retranscris les formule VBA sur mon tableau il me donne une erreur (image 1)
et si je fais débogage j'obtiens (image 2)
Pourtant dans ton exemple sur mon tableau sa marche
merci
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
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
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.
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
c'est normal il ne s'agit pas de la colonne H c'est la colonne AY . J'ai mis H pour faire comprendre qu'il s'agit de la date en AY par rapport à la date d'aujourd'hui
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
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.