XL 2016 UserForm qui valide ou invalide

babacool22

XLDnaute Nouveau
Bonjour le forum !

Avec l'aide du forum, nous avons pu mettre au point un planning qui gère la maintenance préventive d'une usine.
J'aimerais mettre en place un UserForm qui s'active lorsqu'on double click sur une date de début de tâche. Ce UserForm devra si possible pouvoir mettre en rouge la maintenance planifié pour la ligne correspondante si le technicien indique que la maintenance doit être reporté, Si le technicien indique la maintenance est terminé les cellules doivent passées au vert et si la maintenance est déclaré en cours par le technicien les cellules deviennent jaune / orange.
Serait-il également possible de créer un système d'archive sur les données récupérés par le UserForm? C'est à dire, si le UserForm enregistre que la maintenance du 29/06/2022 est terminée, les données sont stockées à un endroit et par exemple dans une autre feuille "Archives" on pourrait y retrouver toutes les informations concernants cette maintenance. Exemple : date de la maintenance + date à la quelle le technicien à déclaré l'avoir terminée ou encore lorsqu'il indique qu'elle est en cours et également si jamais il doit la décallée.

Ci-joint mon fichier,
Dans l'attente de vous lire,

Cordialement,
Babacool22
 

Pièces jointes

  • Planning maintenance v6.xlsm
    274.3 KB · Affichages: 14

Lolote83

XLDnaute Barbatruc
Bonjour BABACOOL22,
Voici ton fichier en retour.
Suite au blc-clic sur une date de début = Ouverture Formulaire.
Le choix effectué s'affiche en colonne AJ et une MFC colorie en VERT, JAUNE ou ROUGE en fonction de ce choix
En espérant avoir compris la demande
2ème demande non vraiment comprise (Archive ????)
@+ Lolote83
 

Pièces jointes

  • Copie de BABACOOL22 - Planning maintenance v6.xlsm
    144 KB · Affichages: 13

babacool22

XLDnaute Nouveau
Bonjour @Lolote83, le forum.

Merci beaucoup pour votre retour et d'avoir pris du temps pour trouver une solution à mon problème !!
La fonctionnalité est top ! L'UserForm est très ergonomique discret et à la fois super joli !!
Il y'a quelque petit bémol suite à l'implantation de celui-ci, je m'explique:
Normalement lorsqu'il n'y a aucun début de tâche, la date de fin de tâche ne doit pas apparaître, et la il y a affiché 01/01/1900 lorsqu'aucune date de départ n'est renseignée, j'avais palier à ce problème en utilisant SIERREUR car une erreur se produisait lorsqu'aucune date de départ n'était entrer et cela ne fonctionne plus maintenant auriez-vous une idée?
Ma 2ème question est de savoir si on pouvait stocké les données des machines sur les quels la maintenance a été validée. Je me demande si il est possible de faire en sorte que les cellules que l'on colorie en vert lorsque la maintenance est validée, reste définitivement sur le planning, c'est à dire que lorsqu'on à validé la maintenance terminée on peut programmer la suivante sans faire disparaître les précedentes cellules verts, ainsi si on veut avoir une vue annuel du planning on pourra voir les machines qui ont déjà été vérifiés dans le passé.
Il y'a également un deuxième soucis, l'UserForm n'est pas disponible pour toutes les dates de départ exemple : D8 | D9 | D10 ect ect...

Encore merci pour l'aide prodiguée !
Dans l'attente de vous lire,

Babacool22
 

Lolote83

XLDnaute Barbatruc
Bonjour BABACOOL22,
Pour l'affichage, c'est simplement les valeurs 0 qu'il faut masquer
Fichier -> Option
Voir copie ecran
Je regarde pour la suite
1656403358415.png


Pour D8,D9 et D10, ce n'est pas la peine de choisir En Cours, A reporter ou terminé vu qu'il n'y a pas de date de départ et donc pas de date finale ?

@+ Lolote83
 

babacool22

XLDnaute Nouveau
Bonjour BABACOOL22,
Pour l'affichage, c'est simplement les valeurs 0 qu'il faut masquer
Fichier -> Option
Voir copie ecran
Je regarde pour la suite
Regarde la pièce jointe 1143752

Pour D8,D9 et D10, ce n'est pas la peine de choisir En Cours, A reporter ou terminé vu qu'il n'y a pas de date de départ et donc pas de date finale ?

@+ Lolote83

Merci beaucoup pour cette réponse rapide, le problème est résolu. Pour le fait de ne pas pouvoir ouvrir l'userform sur toutes les cellules s'est dû au fait qu'il faut que la date en question soit affichée dans le planning pour pouvoir ouvrir l'UserForm.

Encore merci !!!
Dans l'attente de vous lire,

Babacool22
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Je ne saisie toujours pas la deuxième demande
Je me demande si il est possible de faire en sorte que les cellules que l'on colorie en vert lorsque la maintenance est validée, reste définitivement sur le planning
Quid des autres ? En cours et A reporter ?
c'est à dire que lorsqu'on à validé la maintenance terminée on peut programmer la suivante sans faire disparaître les précédentes cellules verts
D'une manière ou d'un autre, la couleur est associée au fait que tes formules indiquent la valeur 1 en fonction des dates de début et de fin. Au final, je n'ai fait que rajouté une colonne Planif ou le fait d'inscrire :
COU = En cours donc Jaune
REP = A reporter donc Rouge
TER = Terminé donc VERT, donne une couleur via MFC (Mise en Forme Conditionnelle)
Donc, en résumé, quand tu te déplace via le bouton droite ou gauche, tes données de dates étant présentes, tu auras toujours les couleurs associées.
J'espère avoir été clair
@+ Lolote83
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Pour le fait de ne pas pouvoir ouvrir l'userform sur toutes les cellules s'est dû au fait qu'il faut que la date en question soit affichée dans le planning pour pouvoir ouvrir l'UserForm
Qu'elle est l'utilité d'afficher un UserForm et de choir parmi les options si pas de dates de début et de fin ?
@+ Lolote83
 

babacool22

XLDnaute Nouveau
Re-bonjour Lolote83,

Qu'elle est l'utilité d'afficher un UserForm et de choir parmi les options si pas de dates de début et de fin ?

ça aurait été pour palier au éventuels cas de figure que l'équipe de maintenance pourrait rencontrer. Si jamais les techniciens une fois après validé leur maintenance, vide les cellules de date afin de les laisser vierge pour une prochaine programmation.

Donc, en résumé, quand tu te déplace via le bouton droite ou gauche, tes données de dates étant présentes, tu auras toujours les couleurs associées.

Les dates sont vouées à changer, chaque machine sera vu plusieurs fois et même peut-être plusieurs fois par an ce qui fait que les dates vont devoir s'adapter. Est-il possible de mettre en place le fait qu'à chaque fois qu'une des dates en ligne 3 par exemple si la machine TCN1 a été validé terminée du 25/06/2022 au 28/06/2022 même après modification des dates originales le créneaux du 25/06/2022 au 28/06/2022 reste égale à 1 car ces dates ont été validées. Je sais pas si c'est très clair

Merci pour ton implication dans ce projet.

Cordialement,
Babacool22
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Le problème tel qu'est conçu le tableau est que tu inscrits des dates de début de fin pour une machine déterminée. En soit, c'est bien, et cela comptabilise en 1 la période choisie entre ces dates et la MFC (Bleu) montre bien sur le planning la période. Le fait de choisir ensuite via le formulaire "En cours", "A reporter" ou "Terminé" ne fait que changer la couleur (Jaune, Rouge ou Vert).
Maintenant, si tu changes la date de début et de fin sur une ligne déjà existante pour de nouvelles dates, celles-ci prendront donc automatiquement la couleur (Jaune, Rouge ou Vert) car les mots COU, REP ou TER seront toujours affichés en regard de cette ligne et tu perdrais donc le suivi sur ton année.
Comment savoir que tu as changé la date du 02/06/22 en 02/10/22 par exemple.
Combien as tu de machines au total ?
A mon sens, si tu veux garder un historique, l'idéal serait donc de recréer une nouvelle ligne pour une machine pour les nouvelle dates. Puis en filtrant sur le nom de la machine, tu aurais un aperçu rapide.
A voir
@+ Lolote83
 

babacool22

XLDnaute Nouveau
Re bonjour,
Le problème tel qu'est conçu le tableau est que tu inscrits des dates de début de fin pour une machine déterminée. En soit, c'est bien, et cela comptabilise en 1 la période choisie entre ces dates et la MFC (Bleu) montre bien sur le planning la période. Le fait de choisir ensuite via le formulaire "En cours", "A reporter" ou "Terminé" ne fait que changer la couleur (Jaune, Rouge ou Vert).
Maintenant, si tu changes la date de début et de fin sur une ligne déjà existante pour de nouvelles dates, celles-ci prendront donc automatiquement la couleur (Jaune, Rouge ou Vert) car les mots COU, REP ou TER seront toujours affichés en regard de cette ligne et tu perdrais donc le suivi sur ton année.
Comment savoir que tu as changé la date du 02/06/22 en 02/10/22 par exemple.
Combien as tu de machines au total ?
A mon sens, si tu veux garder un historique, l'idéal serait donc de recréer une nouvelle ligne pour une machine pour les nouvelle dates. Puis en filtrant sur le nom de la machine, tu aurais un aperçu rapide.
A voir
@+ Lolote83

Re-bonjour Lolote83,

Merci pour tes explications c'est bien plus clair pour moi à présent.
Rajouter une ligne est une bonne idée mais le problème est que si ma macro qui envoye des mails, doit vérifier les dates de 200/300 lignes la macro prends 15x plus de temps à s'éxecuter voir fais cracher complétement Excel. Je serais donc limité dans l'ajout de ligne. Par exemple si l'on valide une maintenance grâce à l'UserForm, celui-ci peut-il envoyer les informations qu'il a validées sur une autre feuille du même classeur. pour éclaircir mon propos:
Je valide une maintenance qui s'est terminée le 26/06/2022 et qui à commencer comme prévu le 22/06/2022, cette machine est la TCN1. Est-il possible que ces données une fois validées ce retrouve dans une autre feuille sous la forme suivante:
date de validation de la maintenance | nom de la machine | date de début de tâche | date de fin de tâche.
En tout nous possédons 60 machines mais il risque de s'en rajouter.
Encore merci pour le temps passé.
Dans l'attente de vous lire,

Babacool22
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Je regarde ce que l'on peut faire avec une archive.
Si j'ai bien compris, lorsqu'une maintenance est notée comme terminée, la ligne en question serait "COUPER" puis collée dans un onglet archive ?
Dans l'attente d'une réponse
@+ Lolote83
 

babacool22

XLDnaute Nouveau
Re bonjour,

L'idée serait de vider la ligne pour envoyer les informations dans l'onglet archive mais pas "couper" la ligne(la récupération de donnée peut-elle être associer à l'userform lorsque l'on valide la tâche?), elle doit rester présente dans le planning prête à être programmer de nouveau.

Cordialement,
Babacool22
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Du coup, pas de couper-coller. OK
J'ai rajouté quelques messages pour le non affichage du userform
- Si date début = vide
- Si on dbl-clic sur une période non affichée

De plus, j'ai pensé aussi (mais peut-être à tord) qu'on ne pouvais pas sélectionner TERMINE si la date de fin>date du jour

L'archivage se fait uniquement sur TERMINE et vide les cellules Nom machine, Date début, Temps et planif
Voir fichier joint
@+ Lolote83
 

Pièces jointes

  • Copie de BABACOOL22 - Planning maintenance v6.xlsm
    152.2 KB · Affichages: 14

babacool22

XLDnaute Nouveau
Bonjour @Lolote83,

Je viens de tester votre proposition, c'est super ça marche très bien, j'ai rajouter la colonne durée de tâche dans les archives et j'aimerai savoir comment refaire pour que la macro inscrive TER dans la colonne PLANIF?
J'aimerai savoir revenir à la précédente solution ( c'est à dire celle qui garde en vert les cellules qui ont été validées ) car je vais présenter les deux solutions à mon collaborateur et choisirai celle qu'il préfère. ( ce sera lui l'utilisateur du planning) De ce fait j'aimerai maîtriser les deux techniques. J'ai compris comment enlever le fait que lorsque l'on valide la maintenance la ligne s'efface mais je n'arrive pas à faire en sorte que la colonne PLANIF ne s'efface pas.
C'est juste pour pouvoir proposé et maîtriser les deux solutions.
J'aurais une autre question mais je me demande si je ne devrais pas ouvrir un nouveau fil pour celle-ci : Est-il possible de rajouter des filtres dans "Consignes" par exemple "Changer les filtres" et cette tâche nous pouvons lui attribué une périodicité et faire en sorte que par exemple elle ne se programme qu'un jour par semaine pendant X temps ?
En vous remerciant pour votre aide vraiment très précieuse.

Cordialement,
Babacool22

PS: J'ai répondu sur mon autre post pourquoi j'ai mis plusieurs jour à répondre et je m'en excuse.
 

Discussions similaires

Réponses
93
Affichages
2 K

Statistiques des forums

Discussions
312 111
Messages
2 085 400
Membres
102 883
dernier inscrit
jameseyz