Msg rappel de validité

FaruSZ

XLDnaute Occasionnel
Bonjour le forum,
J'ai dans ma base de données une liste de formations avec la date d'obtention et date de validité, je veux faire apparaitre un message de rappel de fin de date de validité pour chaque formation, par exemple si une date de validité est fixée au 19/08/2020 je veux que le message de rappel s'affiche 2 mois avant.
Tout d'abord je veux savoir si c'est faisable sous VBA ? et comment le faire ?
Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
1.jpg

Donc on utilise que la ligne 13 pour le nom de la formation et la ligne 14 pour la date de validité ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un premier essai, se lance dans ThisWorkBook

VB:
Sub AlertesDatesFormations()
Dim Sh As Worksheet, Chaine As String, Lig As Integer, Alerte
Lig = 14                ' car les dates de validité se trouvent en ligne 14
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Range("A6") = "Formation Initiale" And Sh.Range("A10") = "Formation interne" Then 'Feuille concernée
        Col = 2         ' car la première date de validité en en colonne B
        While Sh.Cells(Lig - 4, Col) <> ""  ' on regarde toutes les formations
            If Sh.Cells(Lig, Col) <> "" And Sh.Cells(Lig, Col) < Date + 60 Then  ' si formation et date
                ' on enrichit la chaine avec nom-date-formation
                Chaine = Chaine & Sh.Name & vbTab & "    Date: " & Sh.Cells(Lig, Col) & "   " & Sh.Cells(Lig - 1, Col) & vbCrLf
            End If
            Col = Col + 1
        Wend
        If Chaine <> "" Then Chaine = Chaine & vbCrLf
    End If
Next Sh
If Chaine <> "" Then Alerte = MsgBox(Chaine, , "Alertes sur les dates de validité formations.")
End Sub

( la mise en forme du msgbox doit être perfectible )
 

Pièces jointes

  • Base de donnees1 (1) (1).xlsm
    734.3 KB · Affichages: 9

FaruSZ

XLDnaute Occasionnel
Un premier essai, se lance dans ThisWorkBook

VB:
Sub AlertesDatesFormations()
Dim Sh As Worksheet, Chaine As String, Lig As Integer, Alerte
Lig = 14                ' car les dates de validité se trouvent en ligne 14
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Range("A6") = "Formation Initiale" And Sh.Range("A10") = "Formation interne" Then 'Feuille concernée
        Col = 2         ' car la première date de validité en en colonne B
        While Sh.Cells(Lig - 4, Col) <> ""  ' on regarde toutes les formations
            If Sh.Cells(Lig, Col) <> "" And Sh.Cells(Lig, Col) < Date + 60 Then  ' si formation et date
                ' on enrichit la chaine avec nom-date-formation
                Chaine = Chaine & Sh.Name & vbTab & "    Date: " & Sh.Cells(Lig, Col) & "   " & Sh.Cells(Lig - 1, Col) & vbCrLf
            End If
            Col = Col + 1
        Wend
        If Chaine <> "" Then Chaine = Chaine & vbCrLf
    End If
Next Sh
If Chaine <> "" Then Alerte = MsgBox(Chaine, , "Alertes sur les dates de validité formations.")
End Sub

( la mise en forme du msgbox doit être perfectible )
Merci infiniment ca marche comme je veux.
 

Discussions similaires

Réponses
15
Affichages
1 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 022
Messages
2 104 732
Membres
109 116
dernier inscrit
RALAIZANAKA