Comparer les heures

[Résolu/Fermé]
Signaler
Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
-
Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
-
Bonjour à tous,
Je souhaite appliquer une mise en forme conditionnelle en fonction de l'heure réelle.
A1: 0h00
A2: 1h00
...
A25: 23h00

Je voudrais donc mettre automatiquement mes case Axx en rouge (par exemple) si l'heure exacte n'est pas encore arrivée et en vert si l'heure exacte est passée.
J'ai bien capté la fonction =maintenant() mais je me tape de la date :)
Merci d'avance.

7 réponses

Messages postés
17574
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2021
4 768
Re,

alors sélectionne ta plage à traiter, exemple A2:A26 soit de 00:00 à 00:00
pour coloriser en rouge les cellules dont l'heure n'est pas encore atteinte
la formule conditionnelle est
=A2>HEURE(MAINTENANT())/24

pour coloriser en vert les cellules dont l'heure est égale ou dépassée, pour la deuxième conditionnelle la formule est
=A2<=HEURE(MAINTENANT())/24
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
1 678
GENIAL ! ! !
Fonctionne parfaitement sur excel. Je suppose que ca passera également sur un google sheet.
Du coup pour ma culture personnnelle, je ne comprends pas la syntaxe HEURE(MAINTENANT())/24 . Si tu as 2 minutes pour m'expliquer... :)

Edit: Je viens de tester en condition réèlle. A l'heure ou j'écris il est 12h11 sur mon PC, et du coup la case contenant 12:00 reste blanche. Dans l'absolue, 12h00 étant déjà passé de 11 minutes j'aurai voulu qu'elle soit de couleur verte. Possible?
Messages postés
17574
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2021
4 768
Re,

explication HEURE(MAINTENANT())/24

=MAINTENANT() t'affiche le jour, le mois, l'année et l'heure et minute

=HEURE(MAINTENANT()) extrait uniquement l'heure de la syntaxe
mais 00:00 n'est rien d'autre qu'un format pour comprendre saisir une succession de valeur horaire comme 1:00, 1:30 etc ... sélectionne cette plage et clic droit sur la sélection/Format de cellule/Standard
regarde tes valeurs converties en numérique qui n'est que le seul format reconnu par les systèmes informatiques, il en est de même pour les dates
1 correspond au 1er janvier 1900 si tu saisis dans une cellule 42635 et tu formates ta cellule en date tu auras la date d'aujourd'hui 22/09/2016 puisque depuis le 1/1/1900 il s'est écoulé 42635 jours
et donc /24 c'est uniquement pour convertir le format horaire exemple 12:00 correspond à 0,5 de 24 heures

pour ta cellule qui ne passe pas automatiquement aux heures, c'est normal Maintenant() est un code événementiel qui nécessite une action pour être déclenché il suffit de cliquer sur la touche F9 ou activer la formule ce qui n'est pas très pratique.
sur excel il est possible dans les propriétés de ta feuille d'ajouter un bout de code pour activer l'activation automatique mais ne sais pas si sur google sheet le code sera pris en compte

essaye de coller ce code, clic droit sur l'onglet de ta feuille/Visualiser le code et colle ce code voir si le simple fait changer de cellule la formule fonctionne

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub



A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
1 678
Super. En plus de m'avoir dépanner, tes explications sont limpides.
Subsite l'heure courante, et je pense qu'il s'agit d'un arrondi quelque part. Je viens de rouvrir mon fichier, donc le "Maintenant()" se met bien à jour mais doit arrondir à l'heure pleine. Pour 14h51, il doit statuer sur 14h00, et donc ni supérieur ni inférieur à ma référence fixe de 14h00, la case n'est donc ni verte ni rouge.
Peut-être simplement essayer de modifier mon symbole de (strictement >) à (< ou =).
Messages postés
8554
Date d'inscription
lundi 21 décembre 2015
Statut
Membre
Dernière intervention
21 juillet 2020
619
Salut,

Utilise des formats date et tout sera plus facile.
Messages postés
17574
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2021
4 768
Bonjour,

ce n'est pas très compliqué, mais il faut connaitre le format de tes saisies
le format heure reconnu par Excel est par exemple 01:00 pour 1 heure ou 02:00 pour 2 heures etc ...
si tu veux afficher 01h00 ce n'est pas un problème en créant un format personnalisé si non la valeur est considérée comme du texte et complique la mise en œuvre de calculs et comparaisons

alors comment saisis tu 01h00 manuellement !

A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
1 678
Merci de te pencher sur mon problème. Mes heures sont au format 01:00
Ce que je n'arrive pas à faire c'est utiliser la notion d'heure réèlle dans ma mise en forme conditionnelle :(
Je ne maitraise pas bien ces notions de =maintenant() ou =heure()
edit: Dois-je utiliser une cellule référence (ex: [C4] ) contenant =maintenant() ?
Messages postés
17574
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2021
4 768
Re,

revient sur mon post 4, https://forums.commentcamarche.net/forum/affich-33928506-comparer-les-heures#tu y vois ces deux formule, la première fait référence à =A2>HEURE >supérieur à heure

=A2>HEURE(MAINTENANT())/24

la deuxième =A2<=HEURE fait référence à inférieur ou égale que tu as dû zapper
=A2
<=
HEURE(MAINTENANT())/24

maintenant si tu veux inverser la colorisation pour l'heure exacte, il suffit de déplacer le = de formule
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
1 678
La encore c'est très clair. Du coup j'ai intégré mon signe = et je n'ai plus cette heure qui reste sans couleur. Merci.

Mais une dernière chose encore..... (j'ai à peine un vague sentiment d'abuser... :) )
En traduction numérique si j'ai bien pigé 16h00 c'est égal à 0,67 et 16h30 c'est 0,69.
Maintenant (il est 16h47) en utilisant HEURE(MAINTENANT())/24 me donne 16/24.... soit encore <16h30. C'est le problème de l'utisation des Heures pleines comme référentiel.
En gros avec notre (ma) façon de faire il me dit que 16h30 est après 16h47 :)
Messages postés
17574
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2021
4 768
Re,

pas tout compris, ta demande portait sur le changement de couleur jusqu'à ou après les heures entières, veux tu comparer tes heures par rapport non pas à l'heure courante mais à l'heure et minute

parce qu'avec ce que je t'ai conseillé quelque soit tes heures et minutes saisies, le changement de couleur ne se fait qu'en comparant uniquement l'heure saisie et l'heure actuelle
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
1 678
Oui, je n'ai surement pas été très clair, désolé. :/
Toute la méthode décrite plus haut fonctionne parfaitement pour des zones de A1:Axx renseignées avec des heures pleines (je veux dire sans notion de minutes: 05:00 / 13:00 / 16:00... Hors j'ai quelques exceptions. En A19 j'ai 16:00, en A20 j'ai 17:00, en A21 j'ai 17:15, en A22 j'ai 17:30 et seulement en A23 j'ai 18:00.
Mon problème est que nous faisons une extraction du nombre entier d'heures de l'heure réelle avec "Heure(Maintenant(()" sans prise en charge des minutes.

Donc si il est réellement 17:47 en ne faisant que comparer les heures pleines avec ce que tu m'as enseigné hier, je me retrouve avec ma case A19 et A20 en Vert et A21, A22 et A23 en rouge.... Hors les zones A21 et A22 doivent être vertes également puisque 17:15 et 17:30 sont échues.

J'espère avoir été plus clair.
Messages postés
17574
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 octobre 2021
4 768
Re,

alors essaye comme cela pour les heures en vert
=A2<=(HEURE(MAINTENANT())&":"&MINUTE(MAINTENANT()))*1

et avec cette formule pour les heures en rouge
=A2>(HEURE(MAINTENANT())&":"&MINUTE(MAINTENANT()))*1

ou plus simplement
=A2<=MAINTENANT()-ENT(MAINTENANT())
et
=A2>MAINTENANT()-ENT(MAINTENANT())

si tu as l'habitude d'utiliser la syntaxe TRONQUE tu peux remplacer ENT par TRONQUE
=A2<=MAINTENANT()-TRONQUE(MAINTENANT())
A+
Mike-31

Pas savoir n'est pas un échec, l'échec est le refus d'apprendre.
Messages postés
2701
Date d'inscription
mardi 30 août 2011
Statut
Membre
Dernière intervention
12 novembre 2018
1 678
Parfait !! Cette fois ca à l'air de tenir. Utilisation de ta méthode "simple" =A2<=MAINTENANT()-ENT(MAINTENANT())

Une excellente utilisation de formules pour un résultat optimisé. J'aurai beaucoup appris grâce à toi.
Mille merci.