OUblier les dimanches et jours fériés

Bonjour,

alors mon probleme aujourd'hui est le suivant :

j'ai un tableau de congé avec une liste d'agents, divers agents prennent des congés pendant une certaine période et ce qu'il se passe c'est que l'on a pris le soin de rajouter une colonne "CONGES", et dans cette colonne doit figurer le nbs de jours que l'agent a pris pendant ses congés sachant que l'on ne doit pas prendre en compte les dimanches et jours fériés. Bien évidemment cela doit se faire automatiquement a chaque changement de mois car les dates elles sont prédéfinies.

SI besoin est, je vous fournirais éventuellement mon tableau via un lien.

Je vous remerci beaucoup !!!

Va voir ca : http://www.info-3000.com/excel/workday.php

Peut-être pourras-tu en faire quelque chose ?

euuuh la fonction "Workday" ne remplit pas la condition nécessaire à mon probleme car elle fait sauter aussi les samedis alors que pour mon tableau les samedis son pris en comptes et aussi je dois obligatoirement codé sous visual basic par justement, je dois automatiser les cellules de jour !!!

Merci beaucoup !!!

Alors tu devrais joindre un fichier, histoire de savoir comment ton tableau est structuré.

Sinon les réponses risquent d'être un peu dans le vent

Donc voila, je vous adresse ici le lien de mon fichier :

https://www.excel-pratique.com/~files/doc/gupNekZeOQ_conges.zip

Pour toutes éventuelles questions, je prends !!!!

Merci merci

Bonsoir Lala

Il n'existe pas à ma connaissance une fonction donnant les jours ouvrables en Excel.

Il faut donc utiliser une formule compliquée et l'appliquer à chaque période.

Sous réserve de simplification ultérieure, un début de solution pour le tableau, tel qu'il est réduit avec :

Formule en B8 à incrémenter vers le bas (Formule d'un seul tenant)

=SI(SOMME(A1:J8)="";"";SI(ET(D8<>"";C8<>"");D8-C8-ENT((D8-C8-SI(JOURSEM(C8)=1;0;8-JOURSEM(C8)))/7)-SOMMEPROD((Fériés>=C8)*(Fériés<=D8)*(JOURSEM(Fériés)<>1));0)+SI(ET(F8<>"";E8<>"");F8-E8-ENT((F8-E8-SI(JOURSEM(E8)=1;0;8-JOURSEM(E8)))/7)-SOMMEPROD((Fériés>=E8)*(Fériés<=F8)*(JOURSEM(Fériés)<>1));0)+SI(ET(H8<>"";G8<>"");H8-G8-ENT((H8-G8-SI(JOURSEM(G8)=1;0;8-JOURSEM(G8)))/7)-SOMMEPROD((Fériés>=G8)*(Fériés<=H8)*(JOURSEM(Fériés)<>1));0)+SI(ET(J8<>"";I8<>"");J8-I8-ENT((J8-I8-SI(JOURSEM(I8)=1;0;8-JOURSEM(I8)))/7)-SOMMEPROD((Fériés>=I8)*(Fériés<=J8)*(JOURSEM(Fériés)<>1));0))

https://www.excel-pratique.com/~files/doc/Conges.zip

Cordialement

Bonjour

Tu peux ajouter à un module VBA une fonction personalisée

(Une fonction personalisée se crée comme une macro et s'utilise comme une fonction)

Exemple de code :

Function NB_jours_ouvrés(Date_début As Date, Date_fin As Date) As Integer
Dim Cpt As Date
Dim Nb_jours As Integer

For Cpt = Date_début To Date_fin
    If Weekday(Cpt, vbMonday) <> 7 Then
        NB_jours_ouvrés = NB_jours_ouvrés + 1
    End If
Next

End Function

Cette fonction compte le nombre de jours entre deux dates sauf les dimanches.

Tu peux ajouter les contrôles pour les jours fériés

Cordialement

Bonjour,

Alors ca c'est bien une nouveautée pour moi, car en visual basic j'utilise toujours des "Sub", alors j'aurais besoin que vous m'aiguillez pour utiliser une fonction s'il vous plait !!!

Merci

Bonjour

Le Code de la Fonction est dans le Module2

La Fonction s'utilise comme il est écrit dans le Code

=NB_jours_ouvrés(Date_Départ;Date_Fin) pour chaque plage de 2 cellules.

Comme avec les formules SOMMEPROD, il faut donc additionner les résultats de la Fonction appliquée sur chaque champ (Juin, juillet, etc..)

De plus, sur 2 cellules vides du même champ, la fonction renvoie 1.

Ce qui nécessite de soustraire 1 pour chaque champ vide:

=NB.VIDE(Champ Total)/2

https://www.excel-pratique.com/~files/doc/0AP2OConges.zip

Cordialement

Amadeus,

ce que tu as fait est correct merci mais il y a un petit détail que tu as oublié de prendre en compte c'est que la colonne B ne doit prendre en compte que les congés du mois courant or ici il prend la totale, je détaille : il y a en tout 4 employés qui ont pris des congés au mois de juin, donc dans la colonne il n'y a que 4 cellules qui doivent comporter des chiffres le reste étant égal a 0 puis lorsque l'on passera au mois de juillet, il y a en tout 8 employés qui ont pris des congés donc il n'y aura que les cellules de ces employés qui devront comporter des chiffres et tout le reste devrant etre égal a 0.

J'ai pour cela penser a rajouter en B3 la formule suivante :

=DATE(ANNEE(AUJOURDHUI());MOIS(AUJOURDHUI()):1)

=> ce qui représentez la date du mois courant qui changera par exemple on aura 01/06/2008 ===> 01/07/2008.

Ensuite, j'ai pensé a parcourir la ligne 6 et de testé que si une date de la ligne = B3 alors on parcours la colonne correspondante, on vérifie si la cellule est non vide ce qui représente "date_début et on mémorise et pareil pour "colonne+1"; on aura date_fin.

Puis, on met en mémoire la ligne correspondante, on fait tout les calculs nécessaires cad le nb de jours entre le début et la fin puis on pren en considération justement les jours fériés et les dimanches, et pour finir on l'écrit dans dans la cellule à la ligne, à la colonne correspondante.

Voila maintenant, je ne sais pas si mon algo est correct ou pas !!!

MErci beaucoup !!!

Bonsoir

J'ai du lire l'énoncé un peu trop rapidement

Par formule

https://www.excel-pratique.com/~files/doc/PxCoIConges.zip

Avec la Fonction VBA

https://www.excel-pratique.com/~files/doc/FonctionVBA.zip

Cordialement

RE,

euuuuh ce qu'il se passe c'est que par formule ne convient pas car je t'ai fourni un exemple que sur 4 mois mais les points de suspensions signifiait qu'il y avait une continuité cad qu'après il y a aussi le mois d'octobre, le mois de novembre etc etc, en fait on doit parcourir la ligne 6 a mon avi, si tu peux voir cela pour mwa s'il te plait !!!

Merci !!!

Bonjour

Tableau annuel des congés selon l'année choisie en B6

https://www.excel-pratique.com/~files/doc/1t6RsFonctionVBA.zip

Cordialement

Euuuh Bonjour Amadeus,

je tiens tout d'abord a te remercier pour ce que tu as fait mais j'ai fait des tests pour voir la stabilité du programme et j'ai trouvé quelques petits bugs qui sont les suivants :

il ne prend pas en compte les jours de congés par exemple si un employé prend des congés du 14/08/2008 jusqu'au 18/08/2008, on devrait avoir 3 alors qu'il m'affiche 4

aussi lorsque je change l'année en B6, il m'affiche bien janv-09 par exemple et pour tout le reste il m'affiche #NOM!.

Pourrait-tu éventullement apporter une petite correction a cela s'il est possible ?

UN Grand grand merci d'avance !!!!

Bonjour Lala

Il faudrait demander à Demeb pourquoi sa fonction ne marche pas dans ce cas là. J'avoue que je n'avais pas testé autre chose que ton tableau .

La 1ére fonction utilisant SOMMEPROD marche pour ce cas aussi

Pour ce qui est de #NOM! , c'est parce que la formule utilisée nécessite l'activation de la Macro complémentaire utilitaire d'analyse.

Je vais essayer de t'adapter le fichier avec formules, si d'ici là Demeb ...

Cordialement

bonjour

Fichier avec formules nommées.

(J'ai enlevé les macros)

Teste et dis moi...

https://www.excel-pratique.com/~files/doc/CongesV6.zip

Cordialement

Je ne voudrais pas paraitre trop pointilleuse mais pense tu qu'il soit possible que justement que le changement de date se fasse automatiquement cad que lorsque l'on passera au mois de juillet par exemple, ceci se fera automatiquement ?

Sinon, pour le programme en lui meme, il n'y a rien a dire a par que cela est parfait, clean tout ce que tu veux, sincèrement un grand merci Amadeus !!!

Mais ton systeme est bien dans le sens ou l'on peut consulter a n'importe quel moment de l'année combien de jours un employé a pris a tel moment c'est vrai !!!

Bonsoir Lala

Je vois que finalement tu aimerais avoir les 2 solutions sous la main.

C'est fait!

https://www.excel-pratique.com/~files/doc/CongesV7.zip

Cordialement

Bonjour

Je ne suis pas certain d'avoir tout compris, mais je vais essayer de résumer.

En colonne B, tu souhaites voir s'afficher le nombre de jours ouvrées non travaillés par ceux qui sont en congés.

La période de congés à prendre en compte correspond au mois en cours.

J'ai modifié les entêtes de mois pour qui aillent de janvier à décembre en accord avec l'année en colonne B.

La fonction NB_jours_ouvrés tient compte des dimanche mais pas des jours fériés (à adapter)

https://www.excel-pratique.com/~files/doc/CongesV5_2.zip

Rechercher des sujets similaires à "oublier dimanches jours feries"