Suivi du planning et de l'activité du personnel

Bonjour à tous,

Je suis de retour de vacances et me lance dans la mise en place de votre application au niveau de mon service. Mon but est qu'elle soit fonctionnelle pour la rentrée scolaire (1/9/15).

Je vais me servir du dernier fichier envoyé en MP le 16 juillet.

Je me ferai un plaisir de vous tenir au courant de l'avancée de mon travail.

Petite question toutefois (sans pression aucune de ma part, c'est juste pour avoir un ordre d'idée, ) : la prochaine version publique, c'est pour quand ?!! 1 mois, plus, moins ?

Bon courage et encore un grand merci,

e12jules

Bonsoir @ tous,

pas de nouvelles de vous, siger ? J'ai enfin compris et répondu à vos attentes après tant de messages ?

Merci pour vos remerciements Nata_chouette et MelissaVic, cela fait toujours plaisir d'avoir des retours sur un travail !

Lynk ? toujours dans le jus ?

e12jules, vous avez un message et en plus une exclusivité !!!! Vite allez voir !

Avez vous des nouvelles de Caro974 ? je m'inquiète, vous savez...

Pour ce qui est de la nouvelle version elle est prête, mais j'attends des remontées suite à des tests... Vite e12jules !!!

Sébastien, bientôt du travail pour la mise en ligne...

@ bientôt

LouReeD

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 ) afin de ne pas à avoir à attendre trente secondes ou plus pour voir sa mise à jour d'activité se mettre en place sur le Planning !!!

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 merci

@ 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,

Rechercher des sujets similaires à "suivi planning activite personnel"