Résolu XL 2013 VBA / Extraction de dates et heures comprises entre 2 autres selon condition.

PMG

XLDnaute Junior
Bonjour le Fil, Le Forum,

Pourriez vous svp m'aider à finir un code, certains paramètres m'échappent encore!

J'ai un tableau (origine) avec 3 colonnes: code / date de début avec heure / date de fin avec heure.
J'aimerai décomposé chaque ligne du tableau (origine) comme l'exemple ci dessous en tenant compte des jours ouvrés (lundi au vendredi) et heures de travail (9 à 13 et 14 à 19):

Capture 1.PNG

J'arrive à extraire une liste de dates mais de là a y ajouter des heures!

Merci d'avance pour votre disponibilité et vos lumières!
PMG
 
Ce fil a été résolu! Aller à la solution…

Fichiers joints

ChTi160

XLDnaute Barbatruc
Bonjour PMG

danielco j'ai aussi eu des problèmes a l'ouverture lol

Voir en Feuil2 , une approche perfectible sûrement !
Oupss je n'ai pas fait attention au Jours Ouvrés lol
Peux tu expliquer ?
Edit : j'ai changé le fichier (Modif)
jean marie
 

Fichiers joints

Dernière édition:

PMG

XLDnaute Junior
Bonjour @danielco, @ChTi160,

Désolé, je le renvoie...
Merci pour vos réponses,

J'ai besoin de décomposer les dates du tableau (origine), qui sont des tâches a réaliser.
Les tâches sont dans l'ordre du tableau.
Le début est calculé en fonction de la fin de la tâche précédente ou imposé selon un planning.
La fin est calculée en fonction d'une durée d’exécution.

Le résultat obtenu doit servir à remplir les cases d'un planning (macro confectionné et amélioré par @mapomme que je remercie encore)
https://www.excel-downloads.com/thr...-trop-lent-dates-heures-en-couleurs.20045611/

Les dates ne doivent pas tomber un week-end, car cela fausse le planning!
Merci Jean-Marie pour ta macro c'est exactement cela mais avec les week-ends!

Paul
PMG
 

Fichiers joints

ChTi160

XLDnaute Barbatruc
Re
Donc dans les périodes il ne faut pas récupérer les dates qui correspondent aux weekend soit : pas de samedi et dimanche.
C'est ça ?
Jean marie
 

PMG

XLDnaute Junior
VB:
If IsError(Application.Match(Dte, [Fériés], 0)) And (Weekday(Dte, 2) < 6) Then
Voilà, j'ai rajouté la ligne ci-dessus ça à l'air de marcher!
Encore un grand merci Jean-Marie!

Paul
PMG
 

PMG

XLDnaute Junior
Re,

19/05/20 09:00 c'est le début et 19/05/20 19:00 la fin d'une journée de travail, censé représenter la durée de d’exécution d'une tâche planifiée.

T1,T2,T3 et T4 sont les variables théoriques d'une journée de travail. Elles sont modifiables pour pouvoir les ajuster si besoin au fil du temps.

Le code que tu as écrit me sert à retranscrire ce temps de travail sur un planning en y intégrant la pause déjeuner.

J'ai besoin d'avoir toutes les plages horaires décomposées de la sorte pour que la macro fonctionne. Ci-joint un exemple.

J’espère avoir été assez concis!

PMG
A+
 

Fichiers joints

ChTi160

XLDnaute Barbatruc
Bonjour PGM
Bonjour le Fil ,le Forum

Tu dis : "en y intégrant la pause déjeuner. "
mais dans ton exemple !
les 19/05 , 20/05 , 22/05 , et 25/05 à 03/06 , il n'est pas tenu compte de ces Pauses .
Que doit on faire pour cet exemple 9:00 à 19:00 ?
Couvrir toute la Période 9:00 à 19:00 ou couvrir seulement les périodes 9:00 à 13:00 et ensuite 14:00 à 19:00
Autre exemple : 22/05/2020 12:00 au 22/05/2020 15:15
Couvrir toute la période 12:00 à 15:15 ?
ou Couvrir 12:00 à 13:00 et ensuite de 14:00 à 15:15
je ne sais pas si je suis claire
mais peux tu m'expliquer ?
car ça ne donne pas le même résultat Lol
Merci
Jean marie
 

PMG

XLDnaute Junior
Bonjour Jean-Marie,
Bonjour Le Fil, Le Forum,

Merci pour ta réponse, je viens de comprendre!!!

Effectivement il y a des erreurs que je n'avais pas vu, il faut tenir compte des périodes 9:00 à 13h00 et ensuite 14:00 à 19:00. J'ai actualiser les données de l'image en dessous ds le fichier ci-joint.

Exemple d'erreur:
code couleur 45 du 09/06/2020 12:00 au 09/06/2020 15:00

Résultat:
45 09/06/2020 12:00 09/06/2020 13:00
45 09/06/2020 14:00 09/06/2020 15:00

Capture 2.PNG

Info:
La date de fin du tableau "origine" est calculé (dans un autre fichier capture 2) en fonction des variables T1, T2, T3 et T4, elle intègre déjà le temps de pause, les weekends et les congés/fériés et certains imprévus.

Merci
Paul
PMG
 

Fichiers joints

Dernière édition:

PMG

XLDnaute Junior
Re,

Je me suis trompé dans la correction, décidément!
J'espère que le fait d'intégrer le temps de pause ne complique pas trop le code! J'ai compris en gros le code mais je ne saisie pas comment on peut rajouter une ligne avec FirstDate x = x +1 dans le cas ou la durée n’excède pas un jour.

Exemple (le même)
code couleur 45 du 09/06/2020 12:00 au 09/06/2020 15:00

Résultat:
45 09/06/2020 12:00 09/06/2020 13:00
45 09/06/2020 14:00 09/06/2020 15:00

Merci
Paul
 

ChTi160

XLDnaute Barbatruc
Re
En Pièce jointe une approche !
Tu me dis , si ça correspond à ce que tu veux et si tu as besoin d' annotations dans le Code .
jean marie
 
Ce message a été identifié comme étant une solution!

Fichiers joints

PMG

XLDnaute Junior
Re,
J'avais commencé à comprendre et reprendre le code, mais j'en étais encore loin (pas ton niveau).
J'ai bien compris le code super intéressant par rapport à If Else etc...

Juste un petit problème sur la première date, il manque une date:
33 29/05/20 14:00 29/05/20 18:00

Je pense que c'est dans la partie Case > 1 car si l'heure de début est comprise entre T1 et T2,
on rajoute une ligne avec T3 et T4.

En tout cas c'est très clair, merci je vais m'en inspirer lors de prochains codes.

Merci bcp de ta disponibilité Jean-Marie!

Paul
PMG
 

PMG

XLDnaute Junior
Bonjour ChTi160
Le Fil, Le Forum,

C'est parfait!
J'ai compté 7 possibilités et tout à l'air de fonctionner!

Simplement cette partie du code (si plusieurs jours), je ne la comprends pas. Est elle nécessaire?
Car tout fonctionne sans elle apparemment.
VB:
Case Dte = FirstDate And Hredebut >= T1 And Hredebut <= T2 And Hrefin >= T3 And Hrefin <= T4
x = x + 1
ReDim Preserve Tab_Recap(3, x)
Tab_Recap(1, x) = StrCode
Tab_Recap(2, x) = Format(Dte + T3, "mm/dd/yyyy hh:mm")
Tab_Recap(3, x) = Format(Dte + Hrefin, "mm/dd/yyyy hh:mm")
Un grand merci
Bonne journée
PMG
 

ChTi160

XLDnaute Barbatruc
Re
Supprime ! si tu as vérifié que ca ne sert a rien , je vais regarder Lol
EDIT : effectivement , j'ai du laisser cette partie , après l'avoir décomposée !
jean marie
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas