Validation d'échantillon- Détection d'heures qui se chevauchent

Kiriko

XLDnaute Occasionnel
Bonjour à tous.
Je cherche à automatiser des vérifications d'erreurs sur un fichier (ci-joint).
L'onglet à valider est "échantillon daté".
Il s'agit de N° de courses, datées avec des horaires de début et de fin, et attribuées à des N° de planning (potentiellement de K à AD. Les entêtes (K1 à AD1) peuvent changer).
Je souhaite valider qu'un même N° de Planning ne puisse pas être sur 2 (ou plus) courses en même temps (horaires qui se chevauchent à la même date).
L'idéal étant une mise en forme conditionnelle qui colorie en rouge les N° de planning concernés sur la ligne des courses concernées (je l'ai fait "manuellement" dans le fichier joint). De plus, un report des erreurs rencontrées sur l'onglet "Validation" serait un plus. J'y ai mis manuellement un exemple de "mise en forme" des messages d'erreurs rencontrées, mais si une autre forme parait plus pratique en fonction des possibilités du codage ou autre, pas de soucis, je ne tiens pas absolument à cette mise en page de l'onglet "validation". Ensuite, terminer par une MsBox "Des erreurs ont été trouvées. Consultez l'onglet "validation". Souhaitez-vous quand même poursuivre ?" Oui Non :
-Non : Sortir de la macro
-Oui : Poursuivre (je placerais derrière une superbe macro que mapomme a eut la patience et la gentillesse de me coder (Création de Visuels). J'en profite pour le remercier à nouveau.

Merci par avance !!!
 

Pièces jointes

  • Pour Validation.xlsm
    355.8 KB · Affichages: 51

Habitude

XLDnaute Accro
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Nonobstant le niveau, les 2 approches sont trop différentes pour être combinées.

voici donc
Changement de jour à 3h
Permet les "blancs", lignes et "planning"
Ajout des temps de chevauchement.
 

Pièces jointes

  • Pour_Validation2Habs.xlsm
    738.2 KB · Affichages: 65
  • Pour_Validation2Habs.xlsm
    738.2 KB · Affichages: 77
  • Pour_Validation2Habs.xlsm
    738.2 KB · Affichages: 83

Kiriko

XLDnaute Occasionnel
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Waow !
Et bien là, tout est impeccable, merci beaucoup Habitude !! C'est super!
J'aurais 2 requêtes complémentaires optionnelles, j'abuse un peu...
- Une MsBox qui afficherait soit "Aucune erreur trouvée" avec un "ok" et qui sort de la macro ensuite, soit une MsBox "Des erreurs ont été trouvées, souhaitez-vous quand même poursuivre?" -"Non"-> on sort de la macro. "Oui"-> on lance une autre macro ("Test", créée par mapomme sur un autre post, que j'insèrerais ensuite...)
- S'il est possible d'avoir par vba plutôt qu'avec la formule que j'ai saisie, les jours en colonne A de "échantillon daté"? ainsi que l'ID en colonne AE, ça me permettrait entre autre de pouvoir sélectionner des lignes entières pour "Effacer le contenu", supprimer des lignes,.. sans impacter ces formules.
J'aurais peut-être besoin plus tard, mais pas encore certain que cela soit vraiment utile, d'autres validation plus simple à intégrer dans l'onglet validation (basé sur mes MFC en C et en AE dans le fichier joint), mais je reviendrais ici (ou créerais un autre post) le cas échéant.
Conscient que j'en demande beaucoup, et toujours plus, je comprendrais parfaitement que tu ne donnes pas suite, c'est du fignolage, le résultat est déjà très satisfaisant, merci beaucoup Habile et aussi merci à toi, mapomme....
 

Pièces jointes

  • Pour_Validation2HabsDER.xlsm
    705.8 KB · Affichages: 60
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Bonsoir Kiriko, Habitude et le forum,

Une autre manière d'aborder la validation (ceci pour réutiliser le code de la procédure VerifTout):

Lancer la validation:
  • En cliquant sur le bouton "Vérif".
  • Ou en cas de changement d'heure (début ou fin) la validation est lancée automatiquement sans cliquer sur le bouton "Vérif".

Visualiser les anomalies pour les corriger:
En cliquant sur une cellule des colonnes K à AD, on surligne (le cas échéant) les horaires entrant en conflit avec la cellule cliquée.

Créer les visuels:
En cliquant sur le bouton "Visuels", on enchaine sur la création des visuels après avoir averti l'utilisateur de la présence d'anomalies.

le fichier joint a été fusionné avec la dernière version de: Echantillon et Visuels v10.xls
 

Pièces jointes

  • Pour_Validation2 v3.zip
    225.1 KB · Affichages: 32

Kiriko

XLDnaute Occasionnel
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Bonjour mapomme, et bonjour JCGL, bonjour le forum !
Alors là, mapomme, les bras m'en tombent.
Je n'y aurais pas pensé, mais cette approche est géniale ! Merci beaucoup !!!!
Est-ce que ça alourdirai beaucoup le fichier, si la procédure du double clic se lançait à la saisie en plus ? (par exemple dans le fichier, lorsque je saisi "4" en L12 et que je sors de la cellule (Entrée, ou Tab, ou clic simple ailleurs)?
Ultime point : Peut-on obtenir la colonne A par code plutôt que par formule, dès saisie de date en B ? (afin de pouvoir insérer, effacer, supprimer des lignes sans incidence sur la structure)? Je vais également fouiller dans les versions initiales, pour remettre le ".RemoveDuplicates", ça devrait alléger un peu, non?

En tout cas, encore tous mes remerciements !!!
 

JCGL

XLDnaute Barbatruc
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Bonjour à tous,

Ma modeste contribution dans le _Change de la feuille "échantillon daté" :

VB:
'Si une valeur change dans la colonne B alors mettre sur la même ligne mais dans la colonne -1 donc en A le jour au format jjj
If Not Intersect(Target, Range("B:B")) Is Nothing Then Cells(Target.Row, Target.Column).Offset(0, -1) = Format(Cells(Target.Row, Target.Column), "ddd")

A + à tous
 
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Ah, je n'avais pas poussé les tests... 2 petits "soucis" JCGL :
-Lorsque je supprime ou "efface le contenu" d'une cellule en A, avec au moins une autre cellule d'une autre colonne (voire une ligne entière), ça bug...
-Quand je "colle" plusieurs dates en colonne B en 1 fois, ou quand j’incrémente (poignée), ça ne fonctionne pas...

A+ !!
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

(re)Bonsoir Kiriko, bonjour JCGL,

Quand je "colle" plusieurs dates en colonne B en 1 fois, ou quand j’incrémente (poignée)...
En étendant la code de JCGL à l'ensemble des cellules copiées (colonne B) ou incrémentées, voir fichier.

Est-ce que ça alourdirai beaucoup le fichier, si la procédure du double clic se lançait à la saisie en plus ? (par exemple dans le fichier, lorsque je saisi "4" en L12 et que je sors de la cellule (Entrée, ou Tab, ou clic simple ailleurs)?
Pour ma part je pense que ce serait plus compliqué. Il faudrait distinguer entre la simple saisie et un copier/coller (ou d'une recopie par incrémentation). Et dans ce cas, si on copie plusieurs numéros de planning, on ne saurait quel numéro de planning privilégier pour en afficher les chevauchements. Je voyais plutôt le double-clique comme une aide à la correction des anomalies. On fait une saisie ou une copie, toutes les anomalies s'affichent, on corrige puis on réaffiche les anomalies restantes (automatiquement par changement des horaires ou par le bouton "vérif") et on réitère ainsi jusqu'à la disparition de toutes les anomalies.
 

Pièces jointes

  • Pour_Validation2 v4.zip
    235.1 KB · Affichages: 22

Kiriko

XLDnaute Occasionnel
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

Désolé, je viens de me rendre compte que je n'avais pas "envoyée" cette réponse....
Effectivement, mapomme, je n'avais pas envisager ces implications. Pour formuler autrement, tu as su optimiser mes demandes, en allant bien au delà de mes attentes initiales, et le résultat est plus que bluffant !!
Si d'aventure, tu es amené à passer par Lyon, ainsi que Habitude, n'hésitez pas à faire signe, je pense que je vous dois bien un resto au minimum !!
Sans être indispensable, peut-on envisager d'intégrer à cette version la génération du "log" récap de Habitude ? Ah oui, Habitude expliquait que les approches étaient trop différentes pour être combinées....
J'ai (je pense) réussi à remettre la partie avec ".RemoveDuplicates" (simplement replacer l'ancienne version de "Creer_Liste_Date".
Cela semble tourner + vite. Et j'ai annulé la prévisualisation...
Sinon, je viens de le découvrir mais peut-être devrais-je plutôt en parler sur le sujet initial, les règles d'attribution de l'orientation ne semblent pas optimum, mais peut-être avais-je mal formulé. Cela peut-il venir du fait que je demande l'ajustage sur 1 seule page, ou que j'ai changé manuellement la largeur des colonnes du modèle?
Dans le fichier posté ici, mes minuscules modifs et orientation générée inadaptée...
Merci encore !!!

Edit : Dans le code de la page, j'ai enlevé "If xcell <> "" Then" pour que A se vide lorsqu'on efface B. J'ai rajouté une validation de données en B:B pour limiter au format date, car si on faisait une erreur de saisie, ça faisait tout planter et ce même après être "sorti" de l'erreur...
 

Pièces jointes

  • Pour_Validation2 v6.xlsm
    884.3 KB · Affichages: 46
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Validation d'échantillon- Détection d'heures qui se chevauchent

J'ai maintenant plusieurs codes qui travaillent sur le modèle "échantillon daté", que je vais donc concaténer par la suite.
Nous avons ici la validation et les visuels, j'ai également grâce à l'aide de plusieurs forumeurs :
-la création des plannings individuels, et la gestion de leurs impressions,
-le calcul des heures globales et individuelles en distinguant les temps d'attente, les heures de nuit et de dimanche,...,
-le calcul et la validation selon critères des heures individuelles quotidiennes, hebdomadaires, mensuelles.
Bref, un beau bébé, il ne me restera plus qu'a compiler tout ça... Je pense que je posterais le résultat final, histoire de voir si l'on ne peut pas alléger ou optimiser quelque peu (sur mes 1ers essais, on est proche de 4 Mo au global).
Sinon, j'ai essayé de rajouter la fameuse génération de log "Validation" de Habitude, mais visiblement, elle est dépendante de la 1ère partie ("Coloration") donc je pense qu'il n'y a rien à faire...
Merci encore à tous !!!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia