Macro alerte date expiration
Bonjour à tous,
j'ai besoin de votre aide..
J'ai un tableau Excel avec une colonne date expiration, et je souhaiterais créer des alertes 1 mois avant la date d'expiration, sous forme de message (pas de mise en forme conditionnelle).
Je n'ai jamais utilisé de macro donc je vous sollicite.
Je vous joint le tableau en question.
Je vous remercie par avance.
Coralie
Salut coraliecc et le forum
Je n'ai que la version 2003, alors faudra adapter :
- clic droit sur un nom d'onglet ou <Ctrl>+<F11> pour passer sous VBE
choisir le module ThisWorkBook et coller la macro :
Private Sub Workbook_Open()
Dim Cel As Range, X As Long, Msg As String
X = Cells(Rows.Count, "D").End(xlUp).Row
X = IIf(X < 4, 4, X)
For Each Cel In Range([D4], Cells(X, "D"))
If Cel < DateSerial(Year(Date), Month(Date) - 1, Day(Date)) Then
Msg = Msg & "Ligne " & Cel.Row & " " & Cel & " " & cel.offset(0,-2) & Chr(13)
End If
Next Cel
If Msg <> "" Then MsgBox Msg
End SubComme tu ne précises pas la nature du message, c'est juste une approche : la macro se lance à chaque ouverture du fichier. Pour l'instant, je n'ai pas regardé le cas du 31 mars, mais il faudrait préciser ce qu'on doit avoir dans ce cas.créer des alertes 1 mois avant la date d'expiration, sous forme de message (pas de mise en forme conditionnelle).
A+
Bonjour,
sans macro, une formule à tirer vers le bas en col E, peut offrir une approche :
' =SI(D4="";"";SI(MOD((AUJOURDHUI()-D4);365,25)>=335,25;"A";""))
la lettre A s'affichera pendant les 30 jours précédents de chaque anniversaire
ou simplement : =SI(MOD((AUJOURDHUI()-D4);365,25)>=335,25;"A";"")
Cordialement
Gorfael a écrit :Salut coraliecc et le forum
Je n'ai que la version 2003, alors faudra adapter :
- clic droit sur un nom d'onglet ou <Ctrl>+<F11> pour passer sous VBE
choisir le module ThisWorkBook et coller la macro :
Private Sub Workbook_Open() Dim Cel As Range, X As Long, Msg As String X = Cells(Rows.Count, "D").End(xlUp).Row X = IIf(X < 4, 4, X) For Each Cel In Range([D4], Cells(X, "D")) If Cel < DateSerial(Year(Date), Month(Date) - 1, Day(Date)) Then Msg = Msg & "Ligne " & Cel.Row & " " & Cel & " " & cel.offset(0,-2) & Chr(13) End If Next Cel If Msg <> "" Then MsgBox Msg End SubComme tu ne précises pas la nature du message, c'est juste une approche : la macro se lance à chaque ouverture du fichier. Pour l'instant, je n'ai pas regardé le cas du 31 mars, mais il faudrait préciser ce qu'on doit avoir dans ce cas.créer des alertes 1 mois avant la date d'expiration, sous forme de message (pas de mise en forme conditionnelle).
A+
Merci pour la réponse ! J'ai mis un peu de temps avant de comprendre ! Cependant il faudrait que la MSGBOX apparaissent 1 mois avant l'expiration des assurances.
autres questions.. Comment je peux changer le message de la MSGBOX pour que puisse apparaitre le message "Fournisseur X -Assurance expire dans 1 mois"
Je vous remercie une nouvelle fois.