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

XL 2016 Vérifier si un nouveau contrat (avec date début et fin) n'entre pas en collision avec un contrat déjà existant...

OliDay5

XLDnaute Nouveau
Bonjour à tous !

Je m'explique... si j'encode un contrat pour une personne avec Nom, prénom, numéro national (Belge) et début de contrat et fin de contrat.
Comment puis-je vérifier si j'encode un nouveau contrat pour cette même personne qu'il n'entre pas en 'collision' avec un contrat précédent.

Dans la colonne [Actif ?] J'aimerais afficher (tester) le fait que si j'encode un nouveau contrat pour qqun qui a déjà eu un contrat, que la date de début par exemple n'est pas déjà dans un plage de dates utilisée dans un contrat précédent...
Dans mon exemple, si j'encode un nouveau contrat pour David Gentil et que j'encode dans la colonne [Date Début contrat] un date qui serait 21/4/2020 provoquerait un message dans la cellule [Actif] qu'il y a un problème avec ce nouvel encodage...
J'ai donné un nom à la colonne début [DebCont] et un nom à la colonne Fin Contrat [FinCont]...

Merci d'avance pour vos lumières...
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @OliDay5 , le Forum

Je pense que par formules il doit y avoir un moyen, mais je ne sais pas faire. Un essai VBA sur évènement on change pour les gens ayant le même Matricule...

A tester, je n'ai pas tout essayé !

Bonne soirée
@+Thierry
 

Pièces jointes

  • XLD_Event_Control_Contract_Date_From_To.xlsm
    17.6 KB · Affichages: 13

JHA

XLDnaute Barbatruc
Bonjour à tous,

Formule modifiée
VB:
=SI($F2="";"";SI(NB.SI($F$2:$F2;$F2)=1;"Actif";SI(SOMMEPROD((A$2:A2=A2)*(B$2:B2=B2)*(MAX(H$1:H1)>G2))>0; "Déjà sous contrat";"actif")))

JHA
 

Pièces jointes

  • Classeur OliDay5 rev1.xlsx
    9.8 KB · Affichages: 9

OliDay5

XLDnaute Nouveau
Bonjour @OliDay5 , @JHA , le Forum

Et donc j'en conclus que par VBA ca ne convient pas ?

@+Thierry

Encore merci pour votre code en VBA.

Il fonctionne bien... Cependant, lorsque l'on encode la date de début de contrat, ce serait pas mal pour que la date soit checkée également directement...
Mais je modifie votre code pour qu'il fasse un test sur la première colonne aussi...

Deuxième chose, j'essaie de voir comment mettre en avant la ligne déjà existante qui entre en conflit avec la nouvelle entrée... Car il y aura pas mal de lignes encodées très très vite... Cela sera plus facile pour l'utilisateur....

Un grand merci, cela me permet d'avoir une avancée et des idées pour débloquer mon souci...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…