Regle aujourd'hui sur une ligne entiere

bonjour,

Mon amie me demande de l'aide sur un planning qu'elle doit fait faire.

Je recherche le moyen de changer la couleur de la premiere case d'une ligne si dans cette ligne il y a la date d'aujourd'hui.

j'aimerai sans macro car je ne maîtrise pas du tout.

Ci joint une partie de son planning.

merci d'avance pour votre aide

Bonjour,

ce que vous n'avez pas dit c'est que la date est de forme texte "jour/mois" incorporé dans du texte...

une façon de faire serait de trouver "/" et d'extraire deux caractères avant et deux caractères après afin de travailler sur la date.

Faut voir, avec mon niveau ce n'est pas gagné !

J'espère pour vous que d'autre vont se pencher sur votre demande.

A bientôt

LouReeD

Bonsoir,

voici donc une des formules possible :

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

elle permet de "créer" la date à tester en fonction des brides d'information connues...

Ici le fichier joint :

22loureed.xlsx (16.62 Ko)

J'ai rajouté le mois de septembre afin de faire les tests.

Aujourd'hui le 22/9 alors une cellule passe au vert, demain le 23 s'en est une autre.

@ bientôt

LouReeD

Merci de cette réponse très rapide,

Je ne m'attendais pas à une formule si complexe mais ca a l'air de fonctionner.

Peut etre faut il remplir les cases avec un format de date pour que la formule soit plus simple ?

Bonjour,

elle est complexe parce que c'est moi qui l'ait faite !

Avec ma vision d'Excel je n'ai pu sortir que cela !

Reprenons :

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

Ce qui est surligner sert à trouver en fonction "d'aujourd'hui" à quelle numéro de semaine on se trouve, car vos colonne ont pour entête le numéro de semaine, le format TEXTE permet de mettre ce numéro de semaine sur deux chiffre car vos colonnes indiquent S01,S02 etc;

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

A ce numéro de semaine on ajoute avant un S car vos colonne sont du type S23, S24 etc

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

RECHERCHEHorizontal pour trouver la colonne qui porte le nom "Sxx" une fois cette colonne trouvée, la fonction renvoie la valeur qui se trouve dans la cellule à ligne()-1 plus bas où Ligne() correspond à la ligne où se trouve la formule, le -1 est ajouté car les entêtes du tableau sont en ligne 2, donc la première formule en ligne 3 (3-1)=2, deux ligne plus bas à partir de la ligne d'entête nous permet d'arriver en fin de compte sur la première ligne de donnée : 1ière ligne = entête, 2ième ligne = données.

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

Ici on cherche le "/" afin de tomber sur la partie texte qui nous intéresse : la date, une fois le "/" trouver on extrait de la chaine -2 caractère avant et un total de 5 caractères, ce qui nous donne un genre du type xx/xx, c'est la date "camouflée" dans la chaine de la cellule.

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

ici c'est DATEVAL qui "transforme" une valeur alphanumérique en date, hors on a trouvé xx/xx et on y ajoute "/" puis le numéro de l'année d'aujourd'hui ce qui donne une date reconnue par excel du type xx/xx/xx

C'est grâce à cette date que la MFC fonctionne : Si aujourdhui()=la formule alors vert.

En somme c'est formule reprend ce que je disais :

on cherche l'entête, on récupère la valeur de la cellule de cette colonne pour la ligne considérée, de cette valeur on cherche le "/" et on récupère la partie de cette valeur qui va de deux caractères avant sur 5 caractères total, on y ajoute l'année actuel et on regarde si le tout est égal à aujourd'hui !

Alors bien sur dans les cellules il ne faut qu'un et un seul "/", et en plus il en faut au moins 1

Et il ne faut pas d'espaces entre les chiffres et "/" sinon il y a erreur.

Dans tous les cas grâce à :

=SIERREUR(DATEVAL(STXT(RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX);CHERCHE("/";RECHERCHEH("S"&TEXTE(ENT(MOD(ENT((AUJOURDHUI()-2)/7)+0,6;52+5/28))+1;"00");D$2:BU$26;LIGNE()-1;FAUX))-2;5)&"/"&ANNEE(AUJOURDHUI()));"")

Si une erreur est détectée, alors il n'y a pas de date donc pas de couleur verte....

La formule parait complexe, mais bon elle marche bien

@ bientôt

LouReeD

Bonsoir

Essayer ca

24mfc.xlsx (16.42 Ko)

Bonsoir AMIR !

C'est ce que je disais :

elle est complexe parce que c'est moi qui l'ait faite !

Avec ma vision d'Excel je n'ai pu sortir que cela !

@ bientôt

LouReeD

salut LouReeD

Il y a une seule formule en MFC mais utiliser pour plusieurs colonnes, tout va bien à part l erreur de la référence circulaire et le fait que le déplacer glisser des cellules change les références (par exemple si on veut couper ou copier une chose). Par exemple si on veut couper ou copier une chose par glisser une cellule, les références se change.

tu voix normale l'erreur de la référence circulaire ou c’est manque de performance ?!

merci a tt les 2 de votre aide

Merci à vous pour le retour !

Ca fait toujours plaisir !

@ bientôt sur le forum

LouReeD

Rechercher des sujets similaires à "regle aujourd hui ligne entiere"