Alerte par msgbox toutes les 5 semaines

  • Initiateur de la discussion Initiateur de la discussion ascal44
  • Date de début Date de début

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 !

ascal44

XLDnaute Occasionnel
Bonjour ,
Je sollicite votre aide pour afficher une alerte par msgbox toutes les 5 semaines a l'ouverture d'un classeur et ce sur la durée de la semaine.

Je vous remercie par avance pour vos idées
 
Hello
un essai avec ce code à mettre dans le code du ThisWorkbook

VB:
Private Sub Workbook_Open()
dateDebut = Range("A1") 'contient la date de début à partir de laquelle le controle se fait

NumSemDeb = WorksheetFunction.WeekNum(dateDebut) 'récupère le numéro de semaine de la date de début
NumSemAct = WorksheetFunction.WeekNum(Date) 'récupère le numéro de semaine en cours

If (NumSemAct - NumSemDeb) Mod 5 = 4 Then 'si il y a un écart de x*5semaines
    MsgBox NumSemAct - NumSemDeb + 1 & " semaines"
End If

End Sub
 
Bonjour.
Dans le module ThisWorkbook :
VB:
Option Explicit

Private Sub Workbook_Open()
Dim DCyc As Date, NoterDCyc As Boolean
On Error Resume Next
DCyc = [DébutCycle]
If Err Then DCyc = Date: NoterDCyc = True
On Error GoTo 0
Select Case Date - DCyc
   Case Is >= 7: DCyc = DCyc + 35: NoterDCyc = True
   Case Is >= 0: MsgBox "Coucou"
   End Select
If NoterDCyc Then ThisWorkbook.Names.Add "DébutCycle", _
   "=DATEVALUE(""" & Format(DCyc, "dd/mm/yyyy") & """)"
End Sub

Pas vu ta solution vgendron, désolé.

Remarque: avec la mienne il faudra probablement corriger un coup manuellement la référence du nom "DébutCycle" pour qu'elle désigne le lundi où le message doit être émis.
 
Dernière édition:
Remarque: il est possible d'utiliser la touche F5 pour lancer une Private Sub Workbook_Open du module ThisWorkbook pour qu'elle s'exécute immédiatement, en dehors du contexte où elle doit s'exécuter toute seule, c'est à dire à l'ouverture du classeur.
 
Bonjour.
Vous n'aviez pas dit que la date de la dernière maintenance était inscrite dans une cellule.
Alors j'avais pour ma part considéré qu'elle n'y était pas, mais notée en référence d'un nom du classeur et automatiquement reconduite toutes les 5 semaines.
Essayez comme ça :
VB:
Private Sub Workbook_Open()
Dim NbJr As Long
NbJr = Date - Feuil1.[C3].Value
If NbJr >= 35 And NbJr < 40 Then MsgBox "maintenence à faire.", vbInformation, "Ouverture " & Me.Name
End Sub
 
Dernière édition:
- 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
2
Affichages
135
Réponses
3
Affichages
135
Réponses
12
Affichages
325
Réponses
2
Affichages
162
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
240
  • Question Question
Microsoft 365 Remplissage auto
Réponses
14
Affichages
235
Retour