Comment écrire la formule

Salut tout le monde et bonjour

J’ai besoin de votre aide pour écrire une formule

Alors j’ai un classeur qui gère les congés mais je dois calculer la majoration d’hiver si elle remplit les conditions.

Les conditions sont :

1/ Pour ouvrir droit au MH il faut que le congé soit compris entre le 16 octobre et 30 avril de l’année d’après ; et le total de la majoration est de 4 jours max.

2/ Chaque 5 jour de congés ouvrent droit à 1 jour de majoration,

Exemple :

Entre 1 et 4 jours de congé = 0 jour MH

Entre 5 et 9 jours de congé = 1 jour MH

Entre 10 et 14 jours de congé = 2 jours MH

Entre 15 et 20 jours de congés = 3 jours MH

Plus de 20 jours = 4 jours MH (max)

Si un agent prend un congé entre le 16/10 et 30/4 de l’année d’après de 10 jours alors il ouvre droit à 2 jours MH, mais si il prend un autre congé durant la même période {16/10 et 30/04} de 20 jours alors il ouvre droit qu’a 2 jours MH parce qu’il a déjà consomme 2 jours MH. Pour dire simple chaque période {16/10 et 30/04} à 4 jours MH que l’agent peut consommer à sa guise.

Merci pour votre aide

32perso.zip (28.19 Ko)

Bonjour,

Merci de remplir quelques dates de congés avec différentes hypothèses et les résultats à obtenir pour ces dates. Cela permet de tester et te donner le plus rapidement une solution. Un fichier vide ne nous aide pas à développer une solution.

salut Raja

Merci pour la réponse et voici un fichier avec quelque exemples.

18perso-2.zip (29.89 Ko)

Re,

A mon avis, dans le fichier il manque une information prinicpale concernant l'employé (nom ou matricule) qui prend les CP, car celle-ci permet de plafonner les MH.

Salut et merci

Voici le fichier


Il faut bien savoir que le fichier et pour un seul agent et que chaque agent a un fichier

15perso-3.zip (29.78 Ko)

Re,

Ce n'est pas clair. Tes dates ne sont pas chronologiquement ascendantes. Il manque la précision d'année de congé. Par exemple, ligne 23 correspond plutôt le reliquat des congés de l'année 2010/2011. Selon ta description, le salarié avait déjà acquis les 4 jours !!!!

Sois précis et clair dans l'énoncé.

Re,

Les dates logiquement sont on réalité chronologiquement ascendante mais dans le fichier joint il Ya une erreur.

18perso-3.zip (28.82 Ko)

Salut tout le monde

SVP aider moi à trouver la solution

Bonsoir,

Ci-joint fichier à tester.

Il y a 2 fonctions VBA

1ère : calcul du nombre de jours ouvrés avec prise en compte des jours fériés

2ème : calcul des MH

Le code peut-être simplifié, mais j'explique ainsi ma démarche.

Cordialement

21perso-4.xlsm (18.13 Ko)

Salut Jean-Eric et merci pour votre réponse

Voilà ça marche bien mais j’ai rectifié le code de « Total_MH » sur la ligne

Case Is <= 20
                temp = 3

par

Case Is <= 19
                temp = 3

J’ai un problème avec la fonction « PlusJOuvres » car :

mes jours de weekend sont vendredi et samedi

Et j’ai 4 jours février seulement qui sont :

1 janvier

1 mai

5 juillet

1 novembre

Comment faire pour rectifié

Merci à vous

Bonjour,

A tester.

Cdlt

8perso-4.xlsm (18.97 Ko)

Salut Jean-Eric et merci pour votre réponse

Je croix que ça ne marche pas bien « PlusJOuvres »

Voici un exemple.

Merci à vous

7perso-4-modi.xlsm (20.55 Ko)

Re,

A tester une nouvelle fois.

Cdlt.

8perso-4-modi.xlsm (20.92 Ko)

Salut Jean-Eric et merci pour votre réponse

Alors le problème de weekend est réglé mais je croix que « PlusJOuvres » ne prend pas en considération les jours férie.

merci à vous.

10perso-4-re.xlsm (20.74 Ko)

Re,

Je pense que c'est la date de départ qui pose problème.

Il ne doit pas 'agir d'un vendredi, d'un samedi ou d'un jour férié.

A méditer

Cdlt

Salut Jean-Eric

J’ai essai avec différente date mais ça marche pas, elle ne prend pas en charge les jours férié

a savoir (1/1) (1/5)(5/7)(1/11).

Merci pour votre patience

9perso5.xlsm (19.50 Ko)

salut tout le monde

Re,

Je ne t'oublie pas

Je recherche comment faire.

Cdlt.

Bonjour,

Ci-joint fichier pour test.

Cdlt

Option Explicit
Public Function Total_MH(Dd As Date, Nbjours As Byte, Df As Date)
'Congés
    'Dd Date début
    'Date Fin ou de reprise?

Dim DdMH As Date    'Date début MH 16/10/n
Dim DfMH As Date    'Date fin MH 30/04/n+1
Dim temp

DdMH = CDate("16/10/" & Year(Dd))
DfMH = CDate("30/04/" & (Year(Dd) + 1))

    'Si date fin <= date début
    If Df < Dd Then
        Total_MH = 0
        Exit Function
    End If
    'Si date fin <= date début MH
    If Df <= DdMH Then
        Total_MH = 0
        Exit Function
    End If
    'Si Nb jours de congé < 5
    If Nbjours < 5 Then
        Total_MH = 0
        Exit Function
    End If

    If Dd >= DdMH And Df <= DfMH Then
    'Sinon

        Select Case Nbjours
            Case Is <= 9
                temp = 1
            Case Is <= 14
                temp = 2
            Case Is <= 19
                temp = 3
            Case Else
                temp = 4
        End Select
    End If

    Total_MH = temp

End Function
Function PlusJOuvres(D, Nbjours)

Dim Dt As Long
Dim i As Integer
Dim An As Integer
Dim Arr(7)

  Dt = CLng(D)

  Do
    Dt = Dt + 1
    An = Year(D)
    Arr(0) = DateSerial(An, 1, 1)
    Arr(1) = DateSerial(An, 5, 1)
    Arr(2) = DateSerial(An, 7, 5)
    Arr(3) = DateSerial(An, 11, 1)
    Arr(4) = DateSerial(An + 1, 1, 1)
    Arr(5) = DateSerial(An, 5, 1)
    Arr(6) = DateSerial(An, 7, 5)
    Arr(7) = DateSerial(An, 11, 1)
    If (IsError(Application.Match(Dt, Arr, 0))) = True And _
        (Weekday(Dt, vbSunday) < 5) = True Then
      i = i + 1
    End If
  Loop Until i = Nbjours

  PlusJOuvres = Dt

End Function 'fs
15perso-6.xlsm (20.44 Ko)

salut et merci a vous

alors ça marche très bien mais j'ai un problème avec une seul date

4/7/2012 pour quoi !!!!!

Ci-joint fichier

a plus

8perso-6.xlsm (16.95 Ko)
Rechercher des sujets similaires à "comment ecrire formule"