Suivi du planning et de l'activité du personnel
Bonjour,
C'est parti,
j'enfile ma casquette de beta-testeur !
Merci pour l'exclusivité.
A bientôt peut-être pour le SAV !
e12jules
Bonjour,
en fait comme vu avez pu le voir le SAV à marcher plus tôt que prévus !!!
C'est pourquoi j'attends un peu avant de le mettre en ligne, patience Sébastien...
@ bientôt
LouReeD
Bonjour,
SAV très efficace et compétent !
- Éradication du bug effectuée. Application fonctionnelle.
- Mise en production lundi prochain (pré-rentrée).
A bientôt pour les retours.
Merci
e12jules
Bonjour,
très bien et bon courage pour lundi, j'en connais qui ont repris aujourd'hui...
@ bientôt
LouReeD
J'ai repris depuis le 23/08 mais mon service est au complet seulement lundi avec le véritable démarrage de l'année scolaire
e12jules
Bonjour,
Suite à quelques remontées, je me suis rendu compte d'une erreur de logique séquentielle dans une de mes macros...
Mais bon c'est résolu !!!
Bientôt elle arrive !!!
Tout en sachant, qu'avec un peu de temps, la dernière version peut devenir la votre ! Demandez autour de vous, ma version, je l'ai déjà trituré plusieurs fois pour la modelée aux demandes des internautes, tant que cela reste dans mes compétences et les limites de fonctionnement "original" de l'application !
@ bientôt
LouReeD
Bonjour
J'ai découvert cette application il y a quelque temps, et elle convient à l'utilisation que je souhaite en faire.
Merci pour ce développement.
J'ai pu la manipuler et la paramétrer.
J'ai une demande concernant les plages horaires qui sont pour différentes de celles proposées, dans un post vous avez indiqué qu'il était possible de les modifier (6h00 jusqu'à 13h00) mais je vois pas comment.
Autre point s'il vous plait, dans le fichier BD on programme ce que l'on veut, mais est-il possible de programmer également un champ texte libre et dont le contenu une fois saisi serait répercuté dans l'agenda individuel.
Encore merci
Bonjour, et merci de l'intérêt que vous portez à l'application.
Pour ce qui est des plages horaires, en effet c'est modifiables (en travaillant le code VBA etc), je l'ai fait pour une personne qui avait des tranches horaires disparates (5 minutes, 15 minutes puis 1 heure, encore 10 minutes, 50 minutes etc...)
La solution la plus simple serait que je l'adapte à vos souhaits, mais pour ceci je vous communique mon email par PM.
Pour ce qui est de votre demande d'intitulé personnalisé (à la demande) autant que l'utilisateur le rajoute sur la feuille BD...
Là cela devient de plus en plus proche d'une application "PRO"
@ bientôt et @ tout de suite en PM
LouReeD
Bonjour,
suite aux dernières modifications demandées sur les post précédent pour adapter l'application, je me suis rendu compte d'une certaine lenteur (lourdeur) lors du fonctionnement.
Alors au lieu de "sortir" la version 2 comme annoncé, je suis en train de retravailler les codes pour les optimiser (il y aura encore du travail à la suite vu mon niveau en VBA
Cela avance vite, l'optimisation de la mise à jour du planning est faite, il me reste une partie à faire sur la mise à jour des feuilles Agendas, puis restera celle des feuilles Annuelles.
Voilà pour les nouvelles, et excusez moi de "jouer" au Sébastien... (oui il nous tiens en haleine avec son application multi poste instantané).
Comme si l'attente de ma nouvelle version était suivi par nombre d'entre vous !!!
Aller je retourne au travail pour grappiller quelques secondes par ci par là... J'ai lu quelque part sur le net qu'une attente de 7 secondes était acceptable sous Excel pour les utilisateurs, alors que mon appli peut aller jusqu'à la minute( voir plus) suivant les zones de mise à jour sélectionnées !!!!
Alors si j'arrive à descendre à 7 secondes ce sera très bien, car en plus la minute c'est quand on sélectionne 11 lignes sur un mois complet... Mais bon j'aime pas alors j'essaye de faire mieux !!!
@ bientôt
LouReeD
Bonsoir @ tous !
La toute nouvelle version d'APAcHeS est disponible !!!!!
Merci Sébastien pour la rapidité de mise en ligne !!!
Il y a pas mal de nouveautés mais surtout des améliorations dans les codes VBA pour une exécution plus rapide !!!!
N'hésitez pas à me remonter des problèmes.
La page 1 de ce post vous explique tout sur l'application, et le fichier est fourni avec une feuille "A lire".
@ bientôt
LouReeD
PS : une pensée à Caro974 qui ne me donne plus de nouvelles...
201 téléchargements en moins d'une journée !!!!!
bonjour @ tous et merci encore !
Après faut voir si elle vous convient, car j'en conviens, un téléchargement ne correspond pas forcément à une utilisation...
Mais bon, ça fait plaisir comme même !!!
@ bientôt
LouReeD
Bonsoir !
le compteur tourne !
387 depuis la dernière mise en ligne
Merci
@ bientôt
LouReeD
Bonjour à tous,
Un message pour dire merci !
Non seulement l'outils est simple d'utilisation pratique mais Lou Reed m'a été d'une grande aide !
J'apprécie la disponibilité et surtout voir cette forme de solidarité !
Merci !!
Bonjour et merci @ vous !
Et depuis environs 10 jours 623 téléchargements !!! Merci à vous tous !
@ bientôt
LouReeD
Bonjour @ tous !
pour ceux qui n'ont pas froid aux yeux, il a une petite erreur à corriger sur le code VBA dans le Module6 :
EDIT : la dernière version corrige ces erreurs !!!!
Sub maj_planning_activité(Target)
Dim nb_ligne_2 As Long
Dim nb_ligne_1 As Long
surplus = 0
ligne_la_personne = ([Lig_Ref] + 1) + ((WorksheetFunction.RoundUp((Target.Row - [Lig_Ref]) / [nb_ligne_personnel], 0) - 1) * [nb_ligne_personnel])
la_personne = Sheets([N_Feuille_Planning].Value).Cells(ligne_la_personne, 1).Value
If test_existe(la_personne) = True Then
nb_colonne = Target.Columns.Count
nb_ligne = Target.Rows.Count
lacolonne = Target.Column
If lacolonne <= [fin].Column Then
If lacolonne + nb_colonne - 1 > [fin].Column Then
nb_colonne = [fin].Column - lacolonne + 1
End If
laligne = Target.Row
If laligne < ligne_la_personne + 3 And nb_ligne > 1 Then
nb_ligne = nb_ligne - (ligne_la_personne + 3 - laligne)
laligne = ligne_la_personne + 3
End If
If laligne + nb_ligne >= ligne_la_personne + ([nb_ligne_personnel] - 1) Then
nb_ligne = ligne_la_personne + ([nb_ligne_personnel] - 1) - laligne
End If
Application.Calculation = xlAutomatic
With Sheets(la_personne)
If laligne <= ligne_la_personne + 2 + [NB_LGN_MTN] And laligne + (nb_ligne - 1) <= ligne_la_personne + 2 + [NB_LGN_MTN] Then
la_ligne_agenda = (laligne - ligne_la_personne) + 19 + ((laligne - ligne_la_personne) - 3)
For j = 0 To nb_ligne - 1
.Range(Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Titre_Mémoire]
.Range(Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Temps_Mémoire]
Next j
For i = 0 To nb_colonne - 1
If .Cells(1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value = 0 Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
ElseIf .Cells(5, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value <> "" Then
Application.Calculation = xlAutomatic
[position_code] = Sheets([N_Feuille_Planning].Value).Cells(ligne_la_personne + 1, lacolonne + i).Value
If Left([Position_code_val], 3) = "NON" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
Else
If Len([Position_code_val]) > 3 Then
If Mid([Position_code_val], 4, 1) = "P" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
End If
End If
End If
End If
Next i
ElseIf laligne >= ligne_la_personne + 3 + [NB_LGN_MTN] Then
la_ligne_agenda = (laligne - ligne_la_personne) + 19 + ((laligne - ligne_la_personne) - 3) + 2
For j = 0 To nb_ligne - 1
.Range(Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Titre_Mémoire]
.Range(Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Temps_Mémoire]
Next j
For i = 0 To nb_colonne - 1
If .Cells(1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value = 0 Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
ElseIf .Cells(5, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value <> "" Then
[position_code] = Sheets([N_Feuille_Planning].Value).Cells(ligne_la_personne + 1, lacolonne + i).Value
If Left([Position_code_val], 3) = "NON" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
Else
If Len([Position_code_val]) > 3 Then
If Mid([Position_code_val], 4, 1) = "A" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
End If
End If
End If
End If
Next i
Else
la_ligne_agenda = (laligne - ligne_la_personne) + 19 + ((laligne - ligne_la_personne) - 3)
nb_ligne_2 = nb_ligne - ((30 - la_ligne_agenda) / 2)
nb_ligne_1 = nb_ligne - nb_ligne_2
For j = 0 To nb_ligne_1 - 1
.Range(Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Titre_Mémoire]
.Range(Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Temps_Mémoire]
Next j
For i = 0 To nb_colonne - 1
If .Cells(1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value = 0 Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
ElseIf .Cells(5, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value <> "" Then
[position_code] = Sheets([N_Feuille_Planning].Value).Cells(ligne_la_personne + 1, lacolonne + i).Value
If Left([Position_code_val], 3) = "NON" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
Else
If Len([Position_code_val]) > 3 Then
If Mid([Position_code_val], 4, 1) = "P" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
End If
End If
End If
End If
Next i
la_ligne_agenda = la_ligne_agenda + (2 * nb_ligne_1) + 2
For j = 0 To nb_ligne_2 - 1
.Range(Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2), ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Titre_Mémoire]
.Range(Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + (j * 2) + 1, ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (nb_colonne - 1) + (lacolonne - ([debut].Column - 1)))).Value = [Temps_Mémoire]
Next j
For i = 0 To nb_colonne - 1
If .Cells(1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value = 0 Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
ElseIf .Cells(5, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))).Value <> "" Then
[position_code] = Sheets([N_Feuille_Planning].Value).Cells(ligne_la_personne + 1, lacolonne + i).Value
If Left([Position_code_val], 3) = "NON" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
Else
If Len([Position_code_val]) > 3 Then
If Mid([Position_code_val], 4, 1) = "A" Then
.Range(Cells(la_ligne_agenda, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1))), Cells(la_ligne_agenda + ((nb_ligne - 1) * 2) + 1, i + ([le_premier_lundi].Column - Day([le_premier_lundi].Value)) + (lacolonne - ([debut].Column - 1)))).Value = ""
End If
End If
End If
End If
Next i
End If
End With
Application.Calculation = xlManual
End If
Sheets([N_Feuille_Planning].Value).Select
End If
End Sub
En fait il y a des test sur le quatrième caractère d'un code et le test demande 4 fois si c'est égal à "P" hors le test 2 et 4 il faut remplacer le P par un A (surligner en vert dans le message)
Désolé
@ bientôt
LouReeD
Bonjour LouReed, très beau travail pour ce calendrier.
Une seule chose pour moi manque à ce calendrier : la gestion des plages horaires "ouvrées"
Qu'on puisse aller au delà des 8 lignes horaires, et la possibilité de remettre la plage de 12h à 13h en service.
Car mon personnel par exemple travaille de 9h à 19h avec des pauses alternées, donc je ne peux pas modifier les plages en fonction de ça puisque les 8 lignes "obligatoires" ne me suffisent pas.
Dans la rubrique HOMA et HOMI, il suffirait de rajouter 1 ligne à chaque ( pour mon cas ); ou alors d'avoir la possibilité de choisir la plage horaire d'ouverture de l'activité.
Ça serait peux être bien de définir par exemple une heure d'ouverture et une de fermeture de l'activité, et d'avoir le choix de mettre l'heure de pause ou pas.
En dehors de ça, tout est impeccable et très complet.
Cordialement.
Bonjour,
et merci de l'intérêt que vous portez à l'application.
Je peux éventuellement faire les modifications qu'il vous faut.
Je l'ai déjà fait pour plusieurs internautes ravis par l'application.
Voyez en MP
@ bientôt
LouReeD
Bonjour,
Merci et bravo pour ce superbe outil que je découvre avec plaisir et que j'ai hâte de maîtriser.
Je suis une quiche en Excel / VBA (mais je me soigne) et je suis dans le même cas que plusieurs de mes prédécesseurs : mon équipe couvre des horaires de 8h à 20h non-stop avec des plages horaires variables par 1/2h.
Comment renseigner cela dans Apaches sans mettre la grouille ?
8h - 8h30
8h30 - 9h
9h - 9h30
19h-19h30
19h30 - 20h
Merci beaucoup,
Bonjour,
Allez voir vos messages privés...
et expliquez moi tout
@ bientôt
LouReeD
Bonjour, je vous félicite pour ce calendrier car si modification possible il va me changer la vie. J'ai essayé en vain d ajouter des lignes au personnel, d'ajouter et de modifier les tranches horaires, serait il possible de m'éclairer ? Bien cordialement