Emploi du temps

Bonjour,

Je construis les emplois du temps dans la société où je travaille.

Je créé ces plannings en partant de cases que je colorie (conçus avec différents tutos trouvés ici)

Ensuite je passe en version chiffrée pour chaque employé.

Je fais cette dernière phase manuellement (dans le fichier, je n'ai fait que l'emploi du temps de W1).

Je voudrais savoir s'il était possible svp que cette dernière soit automatique, c'est à dire que l'emploi du temps soit fait au fur et à mesure que je colorie les cases de différentes couleur.

Cela me permettrait de gagner un temps fou.

J'espère que que je me suis fait comprendre...

J'ai mis mon fichier dans le message; je pense que cela sera beaucoup plus explicite.

En vous remerciant par avance.

Bonjour,

Il existe dans l'onglet "TELECHARGEMENTS" de ce site, des planning prêts à l'emploi qui te feront probablement gagner du temps...

Je fais cette dernière phase manuellement (dans le fichier, je n'ai fait que l'emploi du temps de W1).

Je voudrais savoir s'il était possible svp que cette dernière soit automatique, c'est à dire que l'emploi du temps soit fait au fur et à mesure que je colorie les cases de différentes couleur.

Cela me permettrait de gagner un temps fou.

J'espère que que je me suis fait comprendre...

Bonjour,

pas facile de travailler sur des couleurs

généralement on met des codes et on colorie par MFC

dans ton cas, je n'ai pas bien compris "dans le fichier, je n'ai fait que l'emploi du temps de W1" ... où cela se trouve-t-il ?

ok j'ai vu

clique sur horaires et tu auras la réponse

mais c'est long, ton fichier n'a pas pris la bonne direction méthodologique

capture d ecran 224

Je vais te montrer dans la journée comment on peut se passer des macros avec un changement mineur, invisible, mais fondamental.

Cool !

Merci pour ton aide !

sans macro

mais ne prend pas (encore) les quarts d'heure

au lieu de mettre en couleur, tape P (ou X ou Y)

edit : suppression fichier au profit du suivant

Correction pour 1/4h et prise en compte fin à 21h

Bonjour,

Effectivement c'est plus rapide avec cette méthode.

je te remercie; c'est exactement ce que je recherchais !

merci pour ce retour

Bonjour,

Je reviens vers vous pour affiner encore plus mon fichier emplois du temps même si pour l'instant le fichier est complètement fonctionnel et utile. Je vous remercie encore pour la création de ce dernier.

Je souhaiterais en effet que selon le poste de l'employé, les cases de couleur soient multiples (pas seulement du rouge) et qu'en fonction de la couleur sélectionnée, celle ci colore les cases de l'emploi du temps.

Par exemple, quand on remplit les cases de couleur marron pour une personne qui va faire de l'entretien technique, les cases de son emploi du temps se colore en marron (voir exemple dans le fichier).

Je faisais cette manipulation à la main et pour les 100 employés que la société.

Que cela soit automatisé me faire gagner un temps considérable vous l'imaginez bien.

Est -ce que cela est réalisable et facile à mettre en place ?

Merci d'avance pour votre retour.

Cordialement.

Bonjour,

Je répète ce que j'ai écrit ...

pas facile de travailler sur des couleurs

généralement on met des codes et on colorie par MFC

et que tu as confirmé :

Effectivement c'est plus rapide avec cette méthode.

J'ai quelques questions pour avancer ...

  • J'avais proposé différents codes P, X ou Y mais est-ce que ceci a une utilisation pour toi ? ou est-ce que tu n'utilises que "P" ?
  • Les couleurs que tu souhaites mettre, elles signifient quoi ? une activité particulière ?
  • Les fiches par employé sont-elles toutes éditées en même temps ?
  • Peut-il y avoir des activités différentes au cours d'une demi-journée ?

Bonjour,

Je m'aperçois que je me suis mal exprimé.

J'utilise effectivement les codes P, X ... . Ces codes correspondent à une activité du style P(donc rouge)=accueil / X=entretien général.

Ces codes devraient être au nombre de 15 donc 15 lettres qui correspondraient au nombre d'activités au sein du parc de loisirs.

Les employés sont pour la plupart polyvalents donc ça peut donner par exemple pour un employé la chose suivante :

Lundi Matin : 9H - 12H Accueil du Parc

Lundi Après midi : 13H30 - 16H Gestion de l'activité accrobranche

D'où l'idée d'un code différent (P: accueil et X: Accrobranche).

Pour que l'employé s'y retrouve, dans sa fiche horaire les cases 9H-12H sont coloriés en rouge signe qu'il doit être à l'accueil.

Pour résumé et donc répondre à tes questions :

  • j'utilise les différents codes que tu m'as mis en place mais il en faudrait plus
  • chaque code donc chaque couleur correspond à une activité particulière
  • Toutes les fiches sont éditées en même temps
  • on peut avoir dans la même journée 2 activités différentes mais pas dans une 1/2 journée

J'espère avoir été le plus clair possible.

Parfait, c'est très clair, je vais partir la dessus.

Je faisais cette manipulation à la main et pour les 100 employés que la société.

Que cela soit automatisé me faire gagner un temps considérable vous l'imaginez bien.

Oh punaise !!

Bon je vais réfléchir et passer à quelque chose de plus efficace.

Bonjour,

J'ai commencé à réfléchir à une solution simple ... pas si simple !

A voir sur le plan du choix des couleurs et des activités ...

13planning-choix.xlsm (31.00 Ko)

Il me reste la récap à faire

Sinon n'hésite pas à regarder cet outil très bien réalisé. https://forum.excel-pratique.com/viewtopic.php?p=807155#p807155

Bonjour,

Merci pour ton retour.

Effectivement c'est plus facile comme ça, avec des boutons de commande.

J'ai réussi à en créer d'autres et changer les couleurs assignées dans VBA.

Est ce que si j'en créé par moi même, ces nouveaux boutons seront-ils repris automatiquement dans la feuille récap, à savoir colorier les cases horaires de l'emploi du temps en fonction de l'activité ?

Par contre je n'arrive pas à insérer des nouvelles lignes pour arriver à 25 employés par jour.

Cordialement.

Voici à quoi j'arrive ... la présentation finale est un poil différente mais l'essentiel est préservé : couleurs, totaux, etc. Cela simplfie (quoique) la macro car je m'appuie sur un tableau croisé dynamique.

Les boutons :

Tu peux créer autant de boutons que tu veux.

Ils seront repris, couleur aussi.

Mets les comme ceci (sauf "Effacer" qu'il faut laisser en l'état)

x : définition

Le "x" que tu choisis peut être important à mon avis demain pour faire des synthèses sur les temps passés par chacun sur chaque activité. Il n'a pas d'effet pour le moment, le tout est d'avoir quelque chose.

S'il y en a plus de 9, il faudrait insérer des lignes avant le tableau de synthèse dans Recap

Les individus :

Ajoute les entre lundi et mardi en insérant des lignes. C'est maintenant possible.

Puis pour les autres jours, insère des lignes et recopie les formules.

J'en ai mis 25...

Les semaines :

C'est déjà bien complexe comme cela. Je préconise (c'est très rare de ma part !) un fichier par semaine. Si tu souhaites, on peut facilement ensuite compiler tous les fichiers et avoir une vue de synthèse mensuelle, voire annuelle.

Les macros :

dans Planning :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Columns.Count = Columns.Count Then Exit Sub
Dim plage As Range
    effectif = Application.CountA(Range([Lundi].Offset(1, 0), [Mardi].Offset(-1, 0)))
    nbhoraires = Application.CountA(Range("2:2"))
    If Not Intersect(Selection, Union([Lundi].Offset(1, 1).Resize(effectif, nbhoraires), [Mardi].Offset(1, 1).Resize(effectif, nbhoraires), [Mercredi].Offset(1, 1).Resize(effectif, nbhoraires), [Jeudi].Offset(1, 1).Resize(effectif, nbhoraires), [Vendredi].Offset(1, 1).Resize(effectif, nbhoraires), [Samedi].Offset(1, 1).Resize(effectif, nbhoraires), [Dimanche].Offset(1, 1).Resize(effectif, nbhoraires))) Is Nothing Then
        Set plage = Intersect(Selection, Union([Lundi].Offset(1, 1).Resize(effectif, nbhoraires), [Mardi].Offset(1, 1).Resize(effectif, nbhoraires), [Mercredi].Offset(1, 1).Resize(effectif, nbhoraires), [Jeudi].Offset(1, 1).Resize(effectif, nbhoraires), [Vendredi].Offset(1, 1).Resize(effectif, nbhoraires), [Samedi].Offset(1, 1).Resize(effectif, nbhoraires), [Dimanche].Offset(1, 1).Resize(effectif, nbhoraires)))
        plage.Select
        choisir True
    End If
End Sub

Dans Recap :

Private Sub worksheet_activate()
Dim i%

' Base de données
Dim cel As Range, jour As Date, act, de
If Not Sheets("BdD").ListObjects(1).DataBodyRange Is Nothing Then Sheets("BdD").ListObjects(1).DataBodyRange.Delete
With Sheets("Planning")
    nbhoraires = Application.CountA(.Range("2:2"))
    For Each cel In .Range([Lundi], .Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row))
        If nom(cel) <> "" Then
            jour = cel
        ElseIf cel <> "" Then
            act = cel.Offset(0, 1)
            de = .Cells(2, cel.Column).Offset(0, 1).Value
            For j = cel.Offset(0, 1).Column To cel.Offset(0, 1).Column + nbhoraires
                If .Cells(cel.Row, j).Value <> act Then
                    If act <> "" Then
                        With Sheets("BdD").ListObjects(1)
                            .ListRows.Add
                            .ListColumns("quand").DataBodyRange.Rows(.ListRows.Count).Value = jour
                            .ListColumns("qui").DataBodyRange.Rows(.ListRows.Count).Value = cel.Value
                            .ListColumns("de").DataBodyRange.Rows(.ListRows.Count).Value = de
                            .ListColumns("a").DataBodyRange.Rows(.ListRows.Count).Value = Sheets("Planning").Cells(2, j).Offset(0, -1).Value + 1 / 4 / 24
                            .ListColumns("quoi").DataBodyRange.Rows(.ListRows.Count).Value = Sheets("Planning").Cells(cel.Row, j).Offset(0, -1).Value
                            .ListColumns("couleur").DataBodyRange.Rows(.ListRows.Count).Value = Sheets("Planning").Cells(cel.Row, j).Offset(0, -1).Interior.Color
                        End With
                    End If
                    act = .Cells(cel.Row, j)
                    de = .Cells(2, j)
                End If
            Next j
        End If
    Next cel
End With
Sheets("BdD").ListObjects(1).Sort.Apply

' effacement des couleurs
Cells.Select
With Selection.Interior
    .Pattern = xlNone
    .TintAndShade = 0
    .PatternTintAndShade = 0
End With

' Légende ... insérer des lignes avant le TCD en fonctioun, du nombre d'activités possibles
Dim ctrls As Control
i = 1
[C1].CurrentRegion.Clear
    For Each ctrls In choix.Controls
        If ctrls.Caption <> "Effacer" Then
            Cells(i, 3) = Left(ctrls.Caption, InStr(ctrls.Caption, " : ") - 1)
            Cells(i, 4) = Mid(ctrls.Caption, InStr(ctrls.Caption, " : ") + 3, 99)
            Range(Cells(i, 3), Cells(i, 4)).Interior.Color = ctrls.BackColor
        i = i + 1
        End If
    Next

' plannings individuels
ActiveSheet.PivotTables(1).PivotCache.Refresh
For i = 1 To Cells(Rows.Count, "E").End(xlUp).Row
    If Cells(i, "E") <> "" And IsNumeric(Cells(i, "E")) Then
        Range(Cells(i, "C"), Cells(i, "E")).Interior.Color = Cells(i, "E")
        Cells(i, "E").Font.Color = Cells(i, "E")
    End If
Next

Range("A1").Select

End Sub
Function nom(cel As Range) As String
    nom = ""
    On Error Resume Next
    If cel.Name.Name Then nom = cel.Name.Name
End Function

Un module :

Option Explicit
Dim CollectionDeBouton() As CBtnClasse

Sub choisir(ok As Boolean)
Dim ctrls As Control
Dim i%
i = 1
    For Each ctrls In choix.Controls
        ReDim Preserve CollectionDeBouton(1 To i)
        Set CollectionDeBouton(i) = New CBtnClasse
        Set CollectionDeBouton(i).bouton = choix.Controls(ctrls.Name)
        i = i + 1
    Next
    choix.Show
End Sub

Un module de classe :

Option Explicit
Public WithEvents bouton As MSForms.CommandButton

Private Sub bouton_Click()
    ' Debug.Print bouton.Name & " |" & Replace(Left(bouton.Caption, InStr(bouton.Caption, " : ")), " ", "") & "| " & bouton.Caption & " | " & "couleur : " & bouton.BackColor
    Selection.Value = Replace(Left(bouton.Caption, InStr(bouton.Caption, " : ")), " ", "")
    Selection.Interior.Color = bouton.BackColor
    Selection.Font.Color = bouton.BackColor 'bouton.ForeColor
    choix.Hide
End Sub
15planning-parc.xlsm (79.40 Ko)

C'était pas gagné d'avance ... mais je me suis un peu décarcassé compte tenu de l'enjeu en temps passé pour les établir ! J'aurais pété un câble rien que d'en faire un à la main !

J'ai fait évoluer un poil le fichier (je tiens compte de la couleur de la police dans recap + je solutionne le double clic quand on sélectionne plusieurs lignes)

40planning-parc.xlsm (87.71 Ko)

Et si tu crées un fichier par semaine, tu as droit à un outil de compilation ...

22compilation.xlsm (30.76 Ko)

Bonjour gregdenanci,

est-ce que le dernier post te convient ?

merci pour ton retour

Rechercher des sujets similaires à "emploi temps"