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