Signaler

Comparer les heures [Résolu]

Posez votre question mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - Dernière réponse le 23 sept. 2016 à 15:43
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.
Afficher la suite 
Utile
+1
moins plus
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.
mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - 22 sept. 2016 à 12:06
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?
Répondre
Ajouter un commentaire
Utile
+1
moins plus
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.
mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - 22 sept. 2016 à 14:56
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 =).
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Salut,

Utilise des formats date et tout sera plus facile.
Ajouter un commentaire
Utile
+0
moins plus
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.
mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - 21 sept. 2016 à 16:34
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() ?
Répondre
Ajouter un commentaire
Utile
+0
moins plus
Re,

revient sur mon post 4, http://www.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.
mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - 22 sept. 2016 à 16:54
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 :)
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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.
mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - 23 sept. 2016 à 09:01
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.
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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.
mohshadow 2697Messages postés mardi 30 août 2011Date d'inscription 23 septembre 2016 Dernière intervention - 23 sept. 2016 à 15:43
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.
Répondre
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !