Bonjour,
Ma proposition de procédure évènementielle correspondait au premier exemple de fichier proposé : modèle date préventive.xlsx. Dans le deuxième fichier la distinction Contrôle Initial - Dernier Contrôle Automatique permet de s'en tirer avec des formules.
Dans le tableau ci-dessous, vos formules ont été modifiées pour éviter les messages d'erreur #VALEUR! et aussi les raccourcir.
![Nom : Contrôle MP 1.JPG
Affichages : 10585
Taille : 126,3 Ko](https://www.developpez.net/forums/attachments/p434349d1544728217/logiciels/microsoft-office/excel/automatiser-mise-jour-dates-planning-maintenance-preventive/controle-mp-1.jpg/)
Les formules sont respectivement :
en B2
=SIERREUR(CNUM(GAUCHE([@FREQUENCE];CHERCHE(" ";[@FREQUENCE])-1))*(1+11*ESTNUM(CHERCHE("an";[@FREQUENCE])));"")
en C2
=SIERREUR(30*[@[FREQUENCE en mois]];"")
en E2
=SI(MAX([@[CONTRÔLE INITIAL]];[@[DATE RELLE DE CONTRÖLE]])>0;MAX([@[CONTRÔLE INITIAL]];[@[DATE RELLE DE CONTRÖLE]]);"")
en F2
=SIERREUR([@[DERNIER CONTRÔLE AUTOMATIQUE]]+[@[FREQUENCE en jour]];"")
en H2
=SI(([@[CONTRÔLE PREVU]]>=AUJOURDHUI()+10)*([@[CONTRÔLE PREVU]]<=AUJOURDHUI()+30);"PREVOIR MP";"")
Au cas où l'utilisation de mois de 30 jours pour le décompte des fréquences d'intervention n'est pas obligatoire et si l'on peut utiliser la fonction MOIS.DECALER, voici une présentation simplifiée du tableau avec deux colonnes en moins (Fréquence en mois et Fréquence en jours).
![Nom : Contrôle MP 2.JPG
Affichages : 13356
Taille : 104,4 Ko](https://www.developpez.net/forums/attachments/p434352d1544728324/logiciels/microsoft-office/excel/automatiser-mise-jour-dates-planning-maintenance-preventive/controle-mp-2.jpg/)
Les formules pour le dernier contrôle automatique en C2 et l'alerte en F2 sont les mêmes qu'en E2 et H2 dans le tableau précédent.Seule la formule pour le contrôle prévu en D2 est plus complexe car elle utilise le calcul du nombre de mois en B2 dans l'ancien tableau. La formule en D2 est :
=SIERREUR(MOIS.DECALER([@[DERNIER CONTRÔLE AUTOMATIQUE]];CNUM(GAUCHE([@FREQUENCE];CHERCHE(" ";[@FREQUENCE])-1))*(1+11*ESTNUM(CHERCHE("an";[@FREQUENCE]))));"")
En comparant les deux tableaux, on peut voir qu'en ligne 17 l'alerte est déclenchée dans le premier tableau alors qu'elle ne l'est pas dans le deuxième.
Cordialement
Claude
Partager