Récupérer créneaux horaires de cellules couleur /planning semaine

Bonjour à tous,

je viens vers vous pour bénéficier de vos lumières, je pense pour une macro mais vous me confirmerez.... Je joins un fichier.

j'ai en effet un planning semaine sur lequel, je mets en couleur les cellules d'une colonne "jour" qui correspondent aux débuts et fins de poste de travail de salariés.

Une macro me calcule, pour chaque jour, le nombre d'heures travail sur le créneau colorié. Jusque là tout va bien...

Je souhaiterez maintenant mettre ds les cellules C, D, E, F, G, H, I 68, des colonnes jour, le créneau horaire correspondant au début et à la fin de poste colorié en récupérant les heures ds la colonne B.

Il faudrait pouvoir sur la ligne du dessous (69) afficher un second créneaux, ce n'est pas obligé de distinguer le matin de l'après midi.

Une simple formule avec une condition SI et la fonction RECHERCHE, on aurait pu récupérer les données ds la colonne B mais les utilisateurs du planning risquent d'ajouter du texte dans les cellules coloriées donc ça va coincer... il faut donc, je pense une macro et c'est là que je bloque

j'ai beau chercher même sur le forum, je n'ai rien trouvé, pourtant je suis sur de passer juste à coté...

A moins que mon approche n'est pas la meilleure, je suis sûr d'être encore agréablement surpris par vos conseils!!

Je vous remercie par avance pour vos précieux retours

DanyRun

Bonsoir,

il y a sur ce forum des fils qui vous propose des fonctions personnels qui permettent de compter le nombre de cellule contenant une couleur déterminée. Essayez de faire une recherche vous tomberez certainement dessus.

@ bientôt

LouReeD

Bonjour,

je ne cherche pas à compter le nombre de cellule qui contiennent une couleur, c'est d'ailleurs la macro que j'ai faite qui donne le nombre d'heures de travail par jour.

C'est beaucoup plus compliqué, enfin pour moi, car il s'agit de récupérer les données horaires de la colonne B (qui ne contient aucune cellule colorée) pour chaque début et fin de poste des colonnes jour.

Le fichier est explicite, il servira en effet à construire un planning semaine en coloriant par jour les périodes horaires qui donneront le nombre d'heures de travail (ça c'est fait par la macro déjà en place).

Il reste à afficher ds les cellules C, D, E, F, G, H, I 68, des colonnes jour, les créneaux horaires correspondant au début et à la fin de poste de chaque jour qui ont été colorié en récupérant les heures ds la colonne B.

Je ne trouve rien sur les fils du forum car c'est un cas spécifique qui doit reprendre plusieurs fonctions qu'il faut compiler et c'est ma malheureusement ma limite de compétences.

J'ai parcouru encore le site toute la soirée mais je n'arrive pas à compiler les fonctions Interior.ColorIndex en boucles avec la récupération des données ds des colonnes différentes pour les afficher ds d'autres cellules où il doit encore avoir une histoire de boucles.

Je suis preneur de conseils sur la formule à construire ou encore sur les principes à respecter, je l'adapterai ensuite au planning.

Merci par avance pour vos conseils

DanyRun

Bonjour et Oups ! je n'avais pas compris !

Vous arrivez à l'heure actuelle à compter le temps de travail sur une journée, et ce que vous cherchez à faire est de trouver le créneau horaire de début et de fin de cette période de travail, et d'inscrire en ligne 68 et 69 les valeurs trouvées, ce qui donnerait dans votre exemple pour le lundi : 06:30 et 09:30. Est ce bien cela ?

@ bientôt

LouReeD

Bonjour LouReeD ,

oui c'est exactement cela, à part que pour le lundi la fin de poste C'est 9h45 puisque que le résultat du total heure travaillées est 3H15.

Ce qui est compliqué pour moi est de compiler, ds la présente boucle, une nouvelle formule qui va venir récupérer des données horaires de la colonne B d'après les cellules coloriées de C2 à I66 pour les afficher en C68, D68, E68, F68, G68, H68 et I 68 et 69.

Merci par avance pour votre retour.

DanyRun

Bonsoir,

ci joint le fichier modifié :

je n'ai fait les modifications uniquement pour la première colonne, je vous laisse le soin de répéter les opérations.

L'idée (la mienne, il y en a peut-être des plus pertinentes...) :

je définie deux variable : Val_Deb et Val_Fin qui correspondent aux valeurs des créneaux horaires de début et de fin des périodes colorées.

votre code boucle sur les cellule d'une colonne définie.

"o" est la cellule testée de cette plage dans votre boucle.

si "o" est coloré, vous incrémentez "i" d'une valeur de 15 minutes en décimale.

je rajoute ceci : si Val_Deb est égale à rien alors on vient de trouver la première cellule colorée de la colonne, on dit donc à VBA que Val_Deb est égale à la valeur de la cellule qui se trouve sur la même ligne que "o" (o.Row) et en colonne 2 (B)

je rajoute également que Val_Fin est égal à la valeur de la cellule qui se trouve sur la ligne en dessous de celle de "o" (o.Row+1) et en colonne 2 (B).

Comme cela si il n'y a plus de cellule colorée nous aurons en Val_Deb par exemple 06:30 et en Val_Fin 06:45

Mais s'il y a une autre cellule colorée, alors Val_Deb ne changera pas car au test "= à rien" ce sera faux car = à 06:30

mais le Val_Fin changera de valeur "en même temps" que "i".

votre code à l'issue de la boucle inscrit la valeur en [C67], je fais de même avec Val_Deb en [C68] et Val_Fin en [C69], puis je repasse ces deux valeurs à rien pour la deuxième colonne.

Attention ! ceci fonctionne uniquement pour des période colorée unique et continue !

@ bientôt

LouReeD

Bonjour,

Désolé pour la réponse tardive mais on a 3h00 de décalage avec la Réunion...

je te remercie pour ton retour et ta solution qui semble convenir

Je te remercie aussi pour les explications, c'est génial cela me permet de comprendre le principe de compiler une autre formule ds la boucle existante.

Je finalise le planning avec tes formules et je reviens vers toi pour te confirmer le résultat avec le fichier.

A très bientôt

DanyRun

Bonjour,

pas de soucis j'aime recevoir un retour positif (ou négatif d'ailleurs) de mes propositions...

Je n'aime pas rester "lettre morte" su je puis dire

@ bientôt alors...

LouReeD

LouReed,

voici le fichier final qui fonctionne parfaitement.

Il est vrai qu'on ne peut pas afficher deux créneaux qui ne se suivent pas mais cela convient pour notre fonctionnement aujourd'hui.

Je m'aventurerai à le faire évoluer si cela s'avère nécessaire.

Un grand merci pour ta solution et aussi les explications, cela m'aide aussi à comprendre et évoluer.

Je mets résolu avec un

A bientôt

DanyRun

LouReed,

voici le fichier final qui fonctionne parfaitement.

Il est vrai qu'on ne peut pas afficher deux créneaux qui ne se suivent pas mais cela convient pour notre fonctionnement aujourd'hui.

Je m'aventurerai à le faire évoluer si cela s'avère nécessaire.

Un grand merci pour ta solution et aussi les explications, cela m'aide aussi à comprendre et évoluer.

Je mets résolu avec un

A bientôt

DanyRun

Bonjour,

je suis ravis que cela fonctionne !

@ bientôt

LouReeD

Rechercher des sujets similaires à "recuperer creneaux horaires couleur planning semaine"