AIDE URGENT POUR CRÉATION MAIN COURANTE

Raphy3034

XLDnaute Nouveau
Bonjour à Tous.
J'ai voulu créer une main courante avec des bouts de macro des uns et ceux des autres mais ça a engendré un peu n'importe quoi. :)
Je pense qu'il faut la créer correctement avec une trame bien précise.
Quelqu'un pourrait il m'aider ? Je dois la mettre en application dès la semaine prochaine.
Voici ce que je souhaite :

La main courante sera utilisé pour 2 vacations chaque jour et pour le mois complet.
PAGE 1 :
La date de début est la date du jour automatique mais sera figé (figé car passage d'un jour à l'autre la nuit)
La date de fin est la date automatique au moment du remplissage de la main courante.
Les vacations sont généralement de 06/18 et de 18/6H (Menu déroulant) mais peuvent être de 07/19 et de 19/7H
Il y a 2 agents à chaque vacation (Menu déroulant) avec une possibilité d'un 3ème agent avec des horaires aléatoires.
Arrivée et Départ : Les agents indiquent ces variables en fonction de leur départ et leur arrivée.
''Dernière mise à jour faite le : '' C'est la date et l'heure actuelle. A chaque fois qu'il y a saisie de données, elle indique la date et l'heure de la dernière saisie.
''MATÉRIEL/SUPPORT'' : Les agents coches lors de leur prise de service.
''Observations / Dysfonctionnements : '' Les agents indiquent ce qu'ils constatent

''Rapport des événements par ordre chronologique : '' Lors de la saisie d’événements sur chaque ligne de cette colonne, l'heure se met automatiquement, et la ligne sera alors figée. Impossibilité pour l'agent de revenir sur cet événement.
A noter : Si le mot ''Alarme'' est indiqué, automatiquement il sera en rouge.
Il aurait été bien pour alimenter la page 3 ''Rapport synthétique des événements ...'' de rajouter un moyen (Cases à cocher) de sélectionner les événements les plus importants et qu'il soit transférer automatiquement sur la page 3.

PAGE 2 :
Continuité des événements.
''Cadre réservé pour les messages complémentaires'' : L'agent rédigera ce qu'il veut''
''Prochaine équipe en service'' : (Cadre vert) L'agent en poste inscrira les horaires et noms des prochains agents pour la prochaine vacation (menus déroulants pour les heures et noms).
Date automatique de la prochaine vacation.
''INTEGRALE'' et ''SYNTHETIQUE'' : Ces 2 boutons sont importants. A chaque fin de vacation, l'agent appuiera sur chaque bouton pour envoyer par mail à différents destinataires :
INTEGRALE : Les 4 pages
SYNTHETIQUE : La page 3 uniquement.

PAGE 3 :
Le haut de la page reprend les mêmes informations que la page 1 à l'identique. Si on change une variable en page 1, elle est reproduit en page 3.
Pareil pour le bas de la feuille (Cases vertes) qui reprends les infos de la page 2.
Dans ce tableau est porté automatiquement les événements les plus importants (Coché) de la page 1.
J'ai placé le bouton ''FIN DE VACATION'' ici. J'apporte l'utilité de ce bouton à la fin.

PAGE 4 :

''Transmission des consignes provisoires'' :
Le haut de la page reprend les mêmes informations que la page 1 à l'identique. Si on change une variable en page 1, elle est reproduit en page 4.
L'agent inscrira dans ce tableau le donneur d'ordre (D.ORDRE), les consignes, celui qui rédige (REDACT) et la date et heure de fin.
A chaque saisie, l'heure se met automatiquement et la ligne sera alors figée. Impossibilité pour l'agent de revenir sur cette consigne.
Petite particularité : Si la date de Fin est supérieur à la date du jour, celle ci se met en ROUGE.
En bas de la page ; ''Prise en compte des consignes '' : Les agents qui auront pris en compte les consignes, inscriront leurs noms (Menu déroulant); Alors la date et l'heure se mette automatiquement et ces données sont figées. ''VISA'' : Lorsqu'on appui sur cette case, se met ''OK, VU ! ''
Bouton SAVE : L'agent peut a tout moment enregistrer la feuille qui sera sauvegarder (sur le bureau par exemple) avec le libellé : ''Main courante - date -heure''. Il devra le faire dans tous les cas à la fin de sa vacation.

Lors de la fin de cette vacation (Jour ou Nuit), je souhaite :
L'agent qui a fini son service, en appuyant sur le bouton ''FIN DE VACATION '' (Page 3) : La feuille composé de 4 pages se fige (On ne peut plus revenir dessus) et ça engendre une nouvelle feuille vierge pour la prochaine vacation. A préciser que l'onglet de ce nouveau feuillet porte la date du jour style ''Jour 26 04 19'' ou Nuit 26 04 19''
Les vacations s’enchaînent 6/18 -18/6 - 6/18 .....

Je pense avoir été complet. Si non, n'hésitez pas a me le dire.
N’hésitez pas a retirer les macros qui posent problèmes....

UN GRAND MERCI !
Raphy
 

Pièces jointes

  • Main-courante SECURITE (2).xlsm
    363.6 KB · Affichages: 27

vgendron

XLDnaute Barbatruc
Hello

un début de réponse pour la page 1
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim t, l As Long
Application.EnableEvents = False
If Not Intersect(Target, Range(plage)) Is Nothing Then
  If Target.Value <> "" Then
    'ActiveSheet.Unprotect (mdp)
    Range("A" & Target.Row) = Time
    'Target.Locked = True
    'ActiveSheet.Protect (mdp)
    
    'on récupère les positions de la cellule qui vient d'etre modifiée
    t = Target.Top
    l = Target.Left
    'on ajoute un Checkbox
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=l - 90, Top:=t + 2, Width:=10, Height:=10).Select
    
    Selection.Name = "CheckBoxA" & Target.Row 'on lui donne un nom "CheckBoxA_Numéro_de_ligne"
    'le numéro de ligne pour servir pour savoir QUOI copier sur la feuille 3
    
  End If
End If
Application.EnableEvents = True
End Sub
 

vgendron

XLDnaute Barbatruc
Hello
Voir PJ

sur ta feuille 1: quand tu ecris sur la colonne B ==> on crée un CheckBox et on met l'heure
si tu modifies ==> message et remet ce qu'il y avait avant
si tu supprimes==> efface l'heure et supprime le CheckBox

tu peux ensuite selectionner le ou les CheckBox
et tu cliques sur le bouton "Envoyer Vers Page 3" placé sur la ligne 23-24
==> ca copie colle les lignes sélectionnées sur la feuille 3


bouton "Fin de vacation"
j'ai repris ton code qui copie colle les valeurs sur les dates et autres cellules
ca colle la feuille trame avec le nom "NUIT....." ==> idem, j'ai repris ton code
ca supprime le code VBA de la nouvelle feuille (inutile de le garder)
et ca protège la nouvelle feuille
puis on rebascule sur la feuille Trame

j'ai essayé de réorganiser tes différentes macros
ex: celle ou tu affiches un calendrier==> je l'ai mise au bon endroit, mais en commentaires== elle ne fonctionne pas chez moi.. sans doute parce que tu as posté une version allégée de ton fichier??

voila ! :-D
 

Pièces jointes

  • Main-courante SECURITE Rev1.xlsm
    547.1 KB · Affichages: 53

Discussions similaires

Réponses
0
Affichages
212
Haut Bas