Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Calcul de réccurence

sr94

XLDnaute Occasionnel
Bonjour
J’aurai besoin d’un coup de main pour finaliser une formule.
Je souhaiterais créer des tâches récurrentes avec 4 possibilités :
Le 1er jour du mois
Tous les jours de la semaine
Mensuel
Hebdomadaire

Je pars d’une date de début, à partir de laquelle la réccurence est calculée. Certaines tâches sont sans réccurence.
Lorsque la tâche est effectuée, je passe Terminé Non en Oui et à partir de là il doit me recalculer une échéance puis remettre Terminé à « Non » au démarrage du fichier par macro.
Ci-joint ce que j’ai fait mais la macro et la formule date d’échéance ne marchent pas comme il faut.
Pouvez vous m’aider ?

Je suis ouverte à d'autres approches si quelqu'un a déjà fait un fichier de ce type.

Merci beaucoup
 

Pièces jointes

  • todo test.xlsm
    36.3 KB · Affichages: 9

Dranreb

XLDnaute Barbatruc
Bonjour.
Avec cette formule il calcule bien le 15/6
En Tableau1[Date d'échéance] :
Code:
=SI([@[Date de début]]<>"";CHOISIR(EQUIV([@[Task Recurrance]];{"Hebdomadaire";"Mensuel";"1er du mois";"Tous les jours de la semaine";""};0);[@[Date de début]]+7;MOIS.DECALER([@[Date de début]];1);DATE(ANNEE([@[Date de début]]);MOIS([@[Date de début]])+1;1);[@[Date de début]]+1);"")
 

sr94

XLDnaute Occasionnel
super merci !
par contre si j'ai une échéance à aujourd'hui, que je mets Terminé en oui, et "tous les jours de la semaine" en réccurence il ne recalcule pas. Il faut attendre le jour suivant ? (il doit passer du vendredi au lundi pas au samedi). Egalement ça ne doit pas se calculer 1 seule fois mais de façon réccurente chaque jour, ou semaine etc ... la date de début est juste un point de départ.
 

Dranreb

XLDnaute Barbatruc
Je n'ai as regardé la programmation, en attendant que ce problème soit réglé.
Après, je suppose qu'il faut quelque part une macro qui remplace toutes les Date de début dépassées et Terminé par la Date d'échéance.
 

Dranreb

XLDnaute Barbatruc
Cette macro devrait faire le taf :
VB:
Sub NouvellesEchéances()
   Dim LOt As ListObject, CDDéb As Integer, CDEch As Integer, CTerm As Integer, L As Long, RngLig
   Set LOt = Feuil1.ListObjects(1)
   CDDéb = LOt.ListColumns("Date de début").Index
   CDEch = LOt.ListColumns("Date d'échéance").Index
   CTerm = LOt.ListColumns("Terminé").Index
   For L = 1 To LOt.ListRows.Count
      Set RngLig = LOt.ListRows(L).Range
      If RngLig(1, CTerm).Value = "Oui" And RngLig(1, CDEch).Value <= Date Then
         RngLig(1, CDDéb).Value = RngLig(1, CDEch).Value
         RngLig(1, CTerm).Value = Empty
         End If
      Next L
   End Sub
 

Dranreb

XLDnaute Barbatruc
Je ne comprends pas ce que vous voulez dire.
Il me semble que que la date de début doit être corrigée pour tous les réalisés dont la date de prochaine échéance a atteint celle du jour.
 

Dranreb

XLDnaute Barbatruc
Ah, vous vouliez dires les jours ouvrés de la semaine.
Il devrait être possible de peaufiner la formule pour les jours ouvré de la semaine en utilisant une expression à base de JOURSEM au lieu de 1 …
 

Discussions similaires

Réponses
16
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…