|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 9 ![]() |
Bonjour à toutes et à tous,
Je viens vers vous avec un petit casse-tête qui a occupé toute ma semaine dernière, et je viens donc demander de l'aide pour essayer de résoudre cela. Je réalise une macro depuis Word avec un userform (on ne peut pas utiliser la fonction Workday !!) Dans cette macro je dois réaliser un planning des tâches en fonction d'une période préalablement désignée sur un calendrier (pas de soucis ici). La où je bloque c'est au moment d'utiliser le DateAdd (aucune certitude dans cette utilisation Par exemple, le projet est en trois phases (P1, P2 et P3) L'utilisateur sélectionne les dates du projet : de vendredi 12h00 à mercredi 12h00 (donc 3 jours ou 24 heures de travail effectif ou encore 1440 minutes (oui je sais je maîtrise la calculette !!) (^^) ) en admettant que le temps alloué à chaque étape du projet soit les mêmes, comment faire pour pouvoir déterminer le début et la fin de chaque étape en considérant que le temps de travail est de 8 heures par jour (de 9 à 18h avec une heure de pose entre 13 et 14h) et en prenant en considération les week-end ? le résultat devrait être : - DebutP1 : vendredi 12h00 / FinP1 : lundi 12h00 - DebutP2 : Lundi 12h00 / FinP2 Mardi 12h00 - DebutP3 : Mardi 12h00 / FinP3 mercredi 12h00 Voila le petit problème Merci d'avance pour vos réponses. PS: je n'ai pas mis de code parce que pour l'instant je suis parti dans une méthode trop compliquée (avec des tonnes de calcul et de if.... then...elseif... else...). Merci encore. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 332 ![]() |
Salut,
DateAdd ajoute un intervalle à une date, on peut déterminer le type d'intervalle qui sera ajouté à la valeur. m pour le mois, d pour le jour, yyyy pour l'année, .... L'utilisation est relativement simple : Code :
MaNouvelleDate = DateAdd("m", 2, Now()) Cette fonction étant une simple addition, les temps de travail ne sont pas pris en compte. http://mhubiche.developpez.com/vba/f...ions/datetime/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 9 ![]() |
Bonjour et merci d'avoir répondu,
Alors j'avais déjà bien étudié la fonction DateAdd en détail et je connais sa syntaxe. Je l'utilise d'ailleurs dans ma macro (incomplète pour l'instant). Je sais qu'elle sert à ajouter un intervalle de temps, mais cela ne résout qu'en partie mon problème. Je cherche un moyen de pouvoir gérer les horaires de travail et les week-ends. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 332 ![]() |
Salut,
Tu dois alors probablement savoir que pour ce type de gestion il y a MSproject. Tu vas devoir gérer les exceptions dans ton code, VBA Word ne le fait pas.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com