Signaler

Gestion de tâches avec périodicité hebdomadaire, mensuelle, annu

Posez votre question MAH1311 16Messages postés vendredi 27 octobre 2017Date d'inscription 24 novembre 2017 Dernière intervention - Dernière réponse le 24 nov. 2017 à 19:31 par MAH1311
Bonjour,

J'ai créé un fichier excel pour gérer des taches. Ces taches sont définies entre deux dates (qui peuvent sur déc de l'année N et jusqu'au mois de janvier de N+1) et elles peuvent être hebdomadaire, mensuelle, trimestrielle ou annuelle.

J'ai utilisé une fonction Si qui me permettent:
- enlever les jours fériés et les week-end
- prendre en compte les jours travaillés où on réalise les tâches en question

Ma question: Comment dois-je procéder pour introduire la périodicité?

Je souhaite aussi colorer en vert les jours où il y a les tâches, blanc les jours travaillés mais sans tâches et gris le week-end ou jour férié et gris-vert les demi-journé.

Merci pour votre réponse


Utile
+0
plus moins
Bonsoir

Poste un exemple de ton fichier sur cjoint.com, fais créer un lien que ti copies et reviens coller ici, on pourra voir quelles mises en forme conditionnelle implanter

Cdlmnt
Via
MAH1311 16Messages postés vendredi 27 octobre 2017Date d'inscription 24 novembre 2017 Dernière intervention - 21 nov. 2017 à 14:50
Bonjour via,

Le code fonctionne seulement lorsque par exemple le jour de début est un lundi sur l'année 1, si ce jour de début tombe un weekend sur les autres années, il ne le considère pas et ça reste un weekend, au lieu de décaler la prochaine échéance sur le lundi suivant.
je ne sais pas quelle est la fonction qui permettrait de décaler si le jour de travail tombe un weekend ou jour férié? merci pour ton aide!!


cdt
mah
Répondre
via55 8704Messages postés mercredi 16 janvier 2013Date d'inscription 24 novembre 2017 Dernière intervention - 21 nov. 2017 à 15:11
Bonjour Mah

La seule solution qui me vient à l'esprit est de faire fonctionner la macro pour chaque année au lieu de toutes les colonnes
Le principe

1) La macro existante : on change dans la boucle For Col = 13 To 1100 le 1100 pour ne faire boucler que sur la 1ere année (mettre donc n° de la colonne du 31 décembre) - idem dans la boucle For t = suiv To 1100 Step 7

2) On copie les lignes de la macro et 'on colle en dessous (avant le end sub), on modifie les For pour boucler des colonnes correspondant au 1er janvier au 31 décembre de la 2eme année et on modifie ainsi les 2 premières lignes pour se déplacer d'une année dans les dates de début et fin :
For ligne = 5 To 12
dd = Application.WorksheetFunction.EDate(Range("D" & ligne).Value, 12)
ff = Application.WorksheetFunction.EDate(Range("E" & ligne).Value, 12)

3) Refaire la même opération qu'au 2 pour l'année suivante en modifiant à nouveau les boucles For et en mettant 24 au lieu de 12 dans les 2 fonctions Edate

Cdlmnt
Via
Répondre
MAH1311 16Messages postés vendredi 27 octobre 2017Date d'inscription 24 novembre 2017 Dernière intervention - 24 nov. 2017 à 19:31
merci via!

Cordialement

mah
Répondre
MAH1311 16Messages postés vendredi 27 octobre 2017Date d'inscription 24 novembre 2017 Dernière intervention via55 - 24 nov. 2017 à 19:31
merci pour ton aide!

Cordialement
mah
Répondre
MAH1311 16Messages postés vendredi 27 octobre 2017Date d'inscription 24 novembre 2017 Dernière intervention - 17 nov. 2017 à 21:53
nickel merci je vais tester ta solution!

cdt.

Mah
Répondre
Donnez votre avis
Utile
+0
plus moins
Re

1) Malgré tes MFC les jours fériés ne se colorent pas car il n'y a jamais FER dans une cellule, ta formule est compliquée on peut la la remplacer par une NB.SI pour les feriés et par des RECHERCHEV dans un tableau de correspondance pour les autres jours :
http://www.cjoint.com/c/GKoxeg4Ko3O

2) Qu'entends tu par introduire la périodicité ?


Cdlmnt
Via
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !