Planning Mensuel Avec l'identification des week end et des fériés

Tophe2

XLDnaute Impliqué
Bonjour le forum,

Je suis en train de commencer un planning mensuel.

Pouvez me dire comment faire pour pouvoir identifier les jours fériés, week end et pourquoi pas les vacances scolaires.

Dans le fichier joint j'ai fait une feuille par mois et un menu déroulant pour choisir l'année.

Marci par avance pour votre aide.
Christophe.
 

Pièces jointes

  • Planning 1.xls
    162 KB · Affichages: 533
  • Planning 1.xls
    162 KB · Affichages: 526
  • Planning 1.xls
    162 KB · Affichages: 528

Celeda

XLDnaute Barbatruc
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour,

Je te place en zip le fichier "Compter les mercredi" extrait de l'appli CEP2005 : ce qui est intéressant dedans et facile à récupérer et à adapter dans ton fichier : les formules pour les fériés, week-end et des vacances scolaires (à modifier en conséquence de l'année): voir les mfc
 

Pièces jointes

  • CalendrierCompterMercredi.zip
    145.2 KB · Affichages: 357

klin89

XLDnaute Accro
Bonjour à tous,
Bonjour Celeda, Tophe2

Pour les jours fériés et weeks-ends, tu boucles sur ta plage de dates en appelant cette fonction personnalisée de Laurent Longre
VB:
Sub Mettre_en_Forme()
Dim cell As Range
With Range("B5:AF5")
  .Interior.ColorIndex = xlNone
  .Font.FontStyle = "normal"
  .Font.ColorIndex = 1
End With
For Each cell In Range("B5:AF5")
  If TYPEJOUR(cell.Value) = 2 Then 'les jours feries
    With cell.Font
      .ColorIndex = 3
      .Bold = True
    End With
  End If
  If TYPEJOUR(cell.Value) = 1 Then 'les weeks-ends
    With cell.Font
      .ColorIndex = 43
      .Bold = True
    End With
  End If
Next cell
End Sub

VB:
'Cette fonction renvoie 0 si le jour passé en paramètre est un jour de semaine,
'1 s'il s'agit d'un samedi ou d'un dimanche et 2 s'il s'agit d'un jour férié.
'Valide jusqu'en 2099 et pour les jours fériés français
Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, t As Integer
Dim LP As Date, LD As Long
Dim Toto As Long
       
    A = Year(D)
    If A > 2099 Then
        TYPEJOUR = CVErr(xlErrValue)
        Exit Function
    End If
    LD = Int(D)
    If LD <= 2 Then
        If LD = 1 Then TYPEJOUR = 2
        Exit Function
    End If
    t = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
    LP = DateSerial(A, 3, 2) + t + (t > 48) _
         + 6 - ((A + A \ 4 + t + (t > 48) + 1) Mod 7)
    Select Case D
        ' Jours fériés mobiles
        Case Is = LP, Is = LP + 38, Is = LP + 49
            TYPEJOUR = 2
        ' Jours fériés fixes
        Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
            Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
            Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
            Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
                TYPEJOUR = 2
        Case Else
        ' Samedi ou dimanche
            If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1
    End Select
End Function
Klin89
 
Dernière édition:

Tophe2

XLDnaute Impliqué
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonsoir celeda et Klin89

Je me suis servi du fichier de celeda pour réaliser mon planning (merci) j'ai également changé la mise en forme.

Mais j'ai pour l'instant 5 personnes qui font des horaires différents tous les jours.
J'ai rentré cela dans la feuille 3, comment puis je m'y prendre pour automatiser A; B; C;... afin que tous se rentre tout seul (si possible), bien sur je défini ce que fait le A le 1er jour du mois ....

Par la suite je rentrerai le nom et prénom des personnes à la place des chiffres.

Merci encore pour votre aide
Christophe.
 

Pièces jointes

  • Planning 2.xls
    133.5 KB · Affichages: 328
  • Planning 2.xls
    133.5 KB · Affichages: 345
  • Planning 2.xls
    133.5 KB · Affichages: 339

klin89

XLDnaute Accro
Re Christophe,
J'arrive un peu tard avec mon VBA :(
Tant pis, je continue :

Feuille ("BD"), tu mets tes périodes de vacances en colonne A et B
A1 Début des vacances , B1 Fin des vacances et ainsi de suite ....

Et tu exécutes ceci :

VB:
Sub Mettre_en_Forme_Les_Vacances_scolaires()
Dim Cell As Range
For Each Cell In Range("B5:AF5")
  If EstVacanceZoneB(Cell.Value) Then 'Applique la couleur verte aux vacances zone B
    Cell.Offset(-1, 0).Interior.ColorIndex = 43 'dans la plage supérieure soit ("B4:AF4")
  End If
Next Cell
End Sub

VB:
Function EstVacanceZoneB(pdate) As Boolean
Dim Cell As Range
  With Sheets("BD")
    For Each Cell In .Range("A1").Resize(.Range("A1").End(xlDown).Row, 1)
      If pdate >= Cell.Value And pdate <= Cell.Offset(, 1) Then
        EstVacanceZoneB = True
        Exit Function
      End If
    Next Cell
  End With
  EstVacanceZoneB = False
End Function
Pour info, l'auteur de la fonction est Habitude

Klin89
 
Dernière édition:

Tophe2

XLDnaute Impliqué
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour klin89 et le forum

Merci pour ta proposition en vba.

Peut on automatiser les horaires de chaque personne 5 (explication dans le message au desssus).

Pour simplifier la saisie ou le remplissage du planning ?

Bonne Journée
et merci pour votre aide.
Christophe.
 
Dernière édition:

Tophe2

XLDnaute Impliqué
Re : Re: Planning Mensuel Avec l'identification des week end et des fériés

Bonjour le forum et klin89

Je suis en train de chercher sur google (beaucoup de résultat) cependant j'ai trouvé cette page https://www.excel-downloads.com/threads/roulement-de-planning.68017/ ou Gruick donne une solution en VBA qui ressemble au besoin que j'ai sur mon planning cependant si quelqu'un peut m'expliquer ce code pour pouvoir le mettre en place dans mon fichier.Sub Combinaisons3()
' Combinaisons3 Macro
' Macro enregistrée le 3/10/06 par Gruick
For i = 1 To 4: For j = i + 1 To 5: For k = j + 1 To 6
a = a + 1
Cells(a, 2) = "Semaine " & a * 2 - 1
Cells(a, 3) = "Chef 1"
Cells(a, 4) = Cells(i, 1)
Cells(a, 5) = Cells(j, 1)
Cells(a, 6) = Cells(k, 1)
Next k: Next j: Next i
For m = Cells(1, 2).CurrentRegion.Rows.Count To 1 Step -1
b = b + 1
Cells(b, 7) = "Chef 2"
Cells(b, 8) = Cells(m, 4)
Cells(b, 9) = Cells(m, 5)
Cells(b, 10) = Cells(m, 6)
Next m
End Sub

Sinon pour continuer avec des formules je cherche un peu mais c'est surtout l'adaptation au fichier qui me bloque un peu.

Merci pour vos réponses
Christophe.
 

Pièces jointes

  • Planning 2.xls
    132 KB · Affichages: 167
  • Planning 2.xls
    132 KB · Affichages: 166
  • Planning 2.xls
    132 KB · Affichages: 159

exene

XLDnaute Accro
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour,

J'ai regardé rapidement ta feuille 3 avec l'emploi du temps du personnel. Le rytme de travail est il cyclique ?, c'est à dire semaine 1, tel rythme de travail, semaine 2, tel rythme de travail, etc, et à partir de quel nième semaine reviens t'on au rytHme de travail de la semaine 1. L'emploi du temps est il organisé sur 3, 4, 5 ou plus de semaines. Sauf erreur de ma part, je n'ai pas vu dans ton fichier un tel cycle.

A te lire.

@+
 

Tophe2

XLDnaute Impliqué
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour exene,

En principe tous les mois cela doit changer mais je reprends le travail de quelqu'un d'autre et je n'ai pas encore toutes les réponses.

L'emploi du temps est prévu sur le mois et il faut que le nombre d'heure par mois soit égal à 144 pour tout le monde et sur l'année que tout le monde est environ le même nombre de dimanche mais je crois que dans le fichier de celeda j'ai une formule qui compte les mercredis je dois pouvoir modifier cela.

Mais pour l'instant j'aimerai pouvoir choisir le roulement des personnes au moins sur le 1er jour du mois pour les 3 1er semaine et après réajuster pour tomber à 144 heures.
Il est vrai que c'est tout nouveau pour moi.

Merci pour ton aide.
Cordialement
Christophe.
 
Dernière édition:

Celeda

XLDnaute Barbatruc
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour,

Bien Troph2, tu as bien avancé dans ton projet et sympa les interventions pour t'aider.
Dans la même veine que Exene, sur les cycles, pour t'aider, un autre fichier issu toujours de CEP2005 : un cycle sur 6 semaines pour 6 personnes.
Il semble ardu au début mais si on suit les indications et les formules de Monique, on
comprend comment élaborer un cycle.Espérant que cela puisse t'inspirer dans ta quête.:)
 

Pièces jointes

  • Calendrier6semaines.zip
    125.6 KB · Affichages: 174

Tophe2

XLDnaute Impliqué
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonsoir le forum,
Voilà je suis en train de chercher la faille mais je n'y arrive pas.
Si possibilité de partir du 1er jour du mois pour trouver le cycle.

Merci
Christophe.
 

exene

XLDnaute Accro
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour,

Pour te mettre sur la piste, ton cycle est de 5 semaines (donc 35 jours avec le dimanche, enfin je crois :) Le rythme de travail de la semaine 6 est le même que celui de la semaine 1. Tu devrais pouvoir avancer avec les exemple fournis par Celeda.

@
 

Tophe2

XLDnaute Impliqué
Re : Planning Mensuel Avec l'identification des week end et des fériés

Bonjour celeda et exene,

Bon voilà je me suis servi des formules (simple) pour arriver à automatiser les mois.

Il faudra uniquement choisir le 1er jour pour la 1er personne et le reste suit.

Je n'ai pas trouvé la formule pour remplir automatiquement les cellules B7 à B10.

Quelquechose comme si B6= ??? alors tu mets en B7 ce qui suit mais il y a 5 possibilités de choix donc là je sèche un peu sur la formule.

Concernant le fichier d'hier soir :
Je n'ai pas compris la formule : " =SI($P6="";"";INDEX(Cycle;MOD($P6-Prim+(COLONNES($Q6:Q6)-1)*7;42)+1)) " et donc pas su l'adapter à mon fonctionnement.

Comment puis je faire pour calculer le nombre d'heure travaillé par mois pour chaque personne ainsi que le nombre de dimanche travaillé par mois.

J'ai essayé de modifier la formule qui se trouve dans le fichier cep 2005 pour les mercredis mais je n'arrive pas trouver la bonne calculer adaptation pour chaque personne (je continue à chercher).

Si vous pouvez m'apporter un peu d'aide pour calculer le nombre d'heure par mois ou me mettre sur la piste concernant mes autres questions (j'ai joint le fichier avec les dernières modifications).

Merci par avance
Cordialement
Christophe.
 

Pièces jointes

  • Planning 2.xls
    171.5 KB · Affichages: 212
  • Planning 2.xls
    171.5 KB · Affichages: 217
  • Planning 2.xls
    171.5 KB · Affichages: 226
Dernière édition:

exene

XLDnaute Accro
Re : Planning Mensuel Avec l'identification des week end et des fériés

Re,

Je découvre le fichier de Monique en même temps que toi. Pour la formule il me semble qu'il faudrait la rédiger ainsi :=SI($P6="";"";INDEX(Cycle;MOD($P6-Prim+(COLONNES($Q6:Q6)-1)*7;35)+1)) car ton cycle est sur 35 jours et non pas 42.

Cependant tu vas de voir adapter les plages nommées Cycle et Prim à ton propre fichier.

Pour le reste j'essaie devoir mais il est vrai que le titre de ton post n'a plus rien à voir avec tes demandes, ce qui va restreindre l'aide que le forum pourrait t'apporter

Bon courage
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
179

Statistiques des forums

Discussions
312 676
Messages
2 090 803
Membres
104 670
dernier inscrit
Djnic30