Mise en forme conditionnelle

Bonjour le forum,

j’espère que vous avez tous passé de bonnes vacances

Voila mon problème, qui m'a pris la tête pendant toutes mes vacances, impossible de trouver la solution ...

J'ai un onglet 'Trame Calendrier", il contient un calendrier annuel avec le nom des chambres et la date et l'heure d'arrivée et de départ.

J'ai besoin que ce calendrier mette en couleur les périodes (en fonction des dates et heures) les chambres occupées. Les données se trouvent dans l'onglet "Registre". (je vous ai masqué les colonnes qui ne servent a rien à ma demande). Je voudrais que la mise a jour des dates se fassent grace à la mise en forme conditionnelle.

Si vous avez besoin d'autres infos, n'hésitez pas ...

Dans tous les cas, merci par avance pour votre aide

Laurent

Bonjour,

Effectivement, si on fait ça par la mise en forme conditionnelle, la formule ne va pas être des plus simple. Mais bon, techniquement, c'est faisable.

J'ai trouvé une règle qui devrais bien fonctionner (il faudra que tu définisse les zones chambre1, chambre2, …, chambre7), mais qui est assez longue, et je ne vois pas trop comment la raccourcir. Le vrai problème, c'est que tu dois modifier plusieurs valeurs pour chaque bloc, et vu que tu as un bloc par jour de l'année .

Enfin bon, j'ai pas encore vérifié si ça fonctionne, je te laisse faire quelques tests pour voir si c'est ce que tu attends.

Voici la formule :

=SI(OU(ET(chambre1=B$2;$B$1+$A3>=datedebut+heuredebut;$B$1+$A3<datefin+heurefin);ET(chambre2=B$2;$B$1+$A3>=datedebut+heuredebut;$B$1+$A3<datefin+heurefin);…))

Il faut bien entendu lister les 7 chambres dans le OU (c'est tout bêtement plein de ET imbriqués dans un OU).

Les valeurs à modifier pour chaque blocs sont les $B$1 de la formule si dessus. Le problème vient de la fusion de cellules (C1 vaut 0…).

J'espère que je répond un peu à ta question (parce que c'est pas vraiment optimal comme solution).

Bonjour,

vachement complexe mais beau problème que je suivrai

à mon avis, il va falloir passer par du vba

Une formule doit suffire

Je préconise de mettre le résultat dans les cases et ensuite de faire la MFC selon ce résultat.

=SOMMEPROD(((Registre!E:E=B$2)+(Registre!G:G=B$2)+(Registre!I:I=B$2)+(Registre!K:K=B$2)+(Registre!M:M=B$2)+(Registre!O:O=B$2)+(Registre!Q:Q=B$2))*(Registre!W:W<=$B$1)*(Registre!Y:Y>=$B$1)*(Registre!X:X<=$A3)*(Registre!Z:Z>=$A3))

à recopier en changeant $B$1 à chaque date (on pourrait faire un DECALER MOD)

il faudrait aussi définir un tableau et limiter les plages pour ne pas prendre toute la colonne

plus rapide

mais il faudra insérer de nouvelles lignes dans le tableau pour agrandir la zone de test

https://www.cjoint.com/c/EHyqPnXw8t5

re,

la présentation des dates en colonne en limite le nombre; je pense qu'une présentation des dates en colonne A aurait été plus judicieuse non, surtout que le fichier est fait en XL2003...

(jolie formule néanmoins )

P.

J'ai quand même une erreur de raisonnement, je ne peux pas traiter dates et heures indépendamment ... à corriger !

Maintenant c'est ok

=SOMMEPROD(((Registre!$E$4:$E$7=B$2)+(Registre!$G$4:$G$7=B$2)+(Registre!$I$4:$I$7=B$2)+(Registre!$K$4:$K$7=B$2)+(Registre!$M$4:$M$7=B$2)+(Registre!$O$4:$O$7=B$2)+(Registre!$Q$4:$Q$7=B$2))*((Registre!$W$4:$W$7+Registre!$X$4:$X$7)<=(B$27+$A3))*((Registre!$Y$4:$Y$7+Registre!$Z$4:$Z$7)>=(B$27+$A3)))

https://www.cjoint.com/c/EHzatEvOtpr

Bonjour,

pourquoi ne pas travailler avec des zones nommées pour une relecture + facile ?

Je continue de suivre ce poste très intéressant, mais je pense que l'auteur du fichier devrait mettre ses dates en ligne et pas en colonne pour la même raison de lisibilité et pas de problème pour le nombre de dates (sous XL2007) au niveau des lignes

Ici il est bloqué à la colonne IV sur son fichier originel

Patrick

je suis d'accord sur ces 2 points

1-nommer les zones : il serait intéressant de structurer les données en tableau et utiliser les en-têtes de colonne comme noms

2-oui, la présentation du planning ne me semble pas optimale

j'ai respecté la demande mais je vais retravailler le fichier pour moi, et mettre la formule dans la MFC cette fois-ci

ps : lolo a lancé le sujet et depuis il observe nos cogitations !

Je regarde à adapter ta formule avec grande difficulté de mon côté mais je n'obtiens pas le bon résultat

mais oui, nous avons la même idée quant à la présentation pas top au départ

Bonjour à tous,

navré, mais j'ai eu des souci pour me lever ce matin, retour de vacances très très dur ...

Un grand merci à tous pour votre aide, c'est génial !!!

Je ne suis pas contre le fait de changer la présentation du calendrier si vous pensez que ça sera plus pratique...

je vais regarder toutes vos propositions et voir si j'arrive à faire quelque chose avec ce que vous m'avez déjà fait.

je reviens vers vous dans l’après-midi ou demain matin.

Laurent

je viens de changer la présentation du calendrier, j'ai créer un autre onglet "nouvelle presentation".

Est-ce comme ça que vous me conseillez de faire ?

le fichier se trouve ici :

Laurent

Bien sur

C'est à ça que j'avais aussi pensé vue le nombre de lignes auxquelles tu a droit pour tes différentes dates..

et pourquoi pas nommer tes zones de l'onglet registre:

séléction de A3:AA27 , CTRL SHIFT F3 , / ligne du haut et les zones sont nommés; il faut ensuite insérer tes nouvelles dates avant la ligne 7 si tu veux que les noms soient toujours valables (c'est UNE façon de faire)

yapluka

ps: éviter les cellules fusionnées, préférable de recopier la même date X fois

Je vais tenter de trouver la formule de mon côté mais c'est mal parti pour le moment et je dois m'absenter

patrick1957 a écrit :

séléction de A3:AA27 , CTRL SHIFT F3 , / ligne du haut et les zones sont nommés; il faut ensuite insérer tes nouvelles dates avant la ligne 7 si tu veux que les noms soient toujours valables (c'est UNE façon de faire)

yapluka

Merci pour cette méthode ...

Avec une MFC :

=SOMMEPROD(((Chambre_1=C$2)+(Chambre_2=C$2)+(Chambre_3=C$2)+(Chambre_4=C$2)+(Chambre_5=C$2)+(Chambre_6=C$2)+(Chambre_7=C$2))*((Date_arrivée+Heure_Arrivée)<=($J3+$B3))*((Date_depart+Heure_Départ)>=($J3+$B3)))

https://www.cjoint.com/c/EHzjRqvofyr

Vous y êtes presque !!!!

la mise en forme fonctionne pour le 01/01/2015, mais s’arrête à 00:00 et va pas plus loin.... j'ai beau avoir regarder, j'avoue que je ne vois pas ce qu'il cloche.

Formule bien plus lisible pour l'utilisateur final je trouve

J'arrivais à la même chose mais plus lentement

et voila, j'ai trouvé le pourquoi du comment ... il faut bien que je serve à quelque chose

voici le fichier corrigé :

Un énorme merci à vous deux ... c'est quand meme dingue, en 3 semaines de vacances, j'ai pas réussi à le faire et vous en une matinée ... pfff, vous m'avez sapé le moral !

Franchement, merci pour votre aide

a plus

Laurent

lolo69490 a écrit :

Vous y êtes presque !!!!

la mise en forme fonctionne pour le 01/01/2015, mais s’arrête à 00:00 et va pas plus loin.... j'ai beau avoir regarder, j'avoue que je ne vois pas ce qu'il cloche.

parce qu'en B27 il est écrit 1jour+1h et pas 1j !!!!

mets en format [hh]:mm et tu verras l'erreur (que je n'avais pas vue non plus)


d'ailleurs, passe la colonne B en format [hh]:mm, on verra apparaître 24:00

Rechercher des sujets similaires à "mise forme conditionnelle"