Msg rappel de validité

  • Initiateur de la discussion Initiateur de la discussion FaruSZ
  • Date de début Date de début
  • Mots-clés Mots-clés
    vba

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 !

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
 
1.jpg

Donc on utilise que la ligne 13 pour le nom de la formation et la ligne 14 pour la date de validité ?
 
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

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.
 
- 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
12
Affichages
355
Réponses
5
Affichages
186
Réponses
4
Affichages
461
Réponses
40
Affichages
1 K
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Réponses
72
Affichages
1 K
Réponses
4
Affichages
243
  • Question Question
Réponses
7
Affichages
186
Retour