|
Détection heures/minutes différentes |
Débuté par Yann LE BOULC'H, 24 jan. 2025 13:35 - 9 réponses |
| |
| | | |
|
| |
Membre enregistré 167 messages |
|
Posté le 24 janvier 2025 - 13:35 |
Bonjour,
Bon mon projet approche de la fin et là, je cherche à comparer des heures/minutes.
Mes collègues doivent savoir qu'ils sont à la bourre si l'heure définie dans le fichier est dépassée par rapport à l'heure courante.
Je pars de ce fichier ini et j'ai 2 valeurs (heure déb et heure de fin du check concerné) :
J'aimerai que la case passe en rouge si l'heure de fin est dépassée.
J'ai essayé ce code qui ne dit bien que j'ai une différence sur chaque ligne :
hnow est une chaîne = HeureVersChaîne(HeureSys(), "HH:MM")
POUR TOUTE CHAÎNE sMot DE sfichier SÉPARÉE PAR RC TABLE_TacheHDP.AjouteLigne(ExtraitChaîne(sMot,1,","),ExtraitChaîne(sMot,2,","),ExtraitChaîne(sMot,3,","),ExtraitChaîne(sMot,4,","),ExtraitChaîne(sMot,5,","),ExtraitChaîne(sMot,6,","),ExtraitChaîne(sMot,7,",")) TableActiveFiltre(TABLE_TacheHDP.COL_Jour, filtreCommencePar, "1-Lundi") SI hnow <> ExtraitChaîne(sMot,5,",") ALORS Trace("Heure différente",hnow) FIN FIN Message modifié, 24 janvier 2025 - 13:49 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 167 messages |
|
Posté le 24 janvier 2025 - 13:51 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 773 messages |
|
Posté le 24 janvier 2025 - 14:08 |
Bonjour A première vue, je dirai que la différence sur chaque ligne est normale, vous n'aurez pas de différence quand l'heure sera précisément égale à la valeur du fichier ini. J'aurai fait le contraire, un ChaineVersHeure de la valeur du fichier ini, puis un supérieur ">" pour comparer l'heure système et la valeur Ini.
Cdlt |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 167 messages |
|
Posté le 24 janvier 2025 - 14:58 |
Merci Cedirc_34.
Cependant, j'ai un comportement étrange depuis que j'ai mis ChaineVersHeure que je ne comprends pas :
hnow est une chaîne = ChaîneVersHeure(HeureSys(), "HH:MM")
POUR TOUTE CHAÎNE sMot DE sfichier SÉPARÉE PAR RC TABLE_TacheHDP.AjouteLigne(ExtraitChaîne(sMot,1,","),ExtraitChaîne(sMot,2,","),ExtraitChaîne(sMot,3,","),ExtraitChaîne(sMot,4,","),ExtraitChaîne(sMot,5,","),ExtraitChaîne(sMot,6,","),ExtraitChaîne(sMot,7,",")) TableActiveFiltre(TABLE_TacheHDP.COL_Jour, filtreCommencePar, "1-Lundi") SI hnow > ExtraitChaîne(sMot,5,",") ALORS Trace("Heure différente",hnow) FIN FIN
J'ai bien forcé le format en HH:MM et pourtant cela m'affiche une série de chiffre bizarre contrairement à ceux que j'avais en haut du message :
Après comment je pourrais coder pour que la cellule concernée "Deb_Planif" s'affiche en rouge svp ?Message modifié, 24 janvier 2025 - 15:08 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 205 messages |
|
Posté le 24 janvier 2025 - 15:40 |
Bonjour Pour afficher la cellule en rouge, il faut d'abord récupérer l'indice de la ligne lors de l'ajout Puis utiliser cet indice avec la colonne Deb_Planif, pour affecter la couleur rouge
nIndice est un entier hnow est une chaîne = ChaîneVersHeure(HeureSys(), "HH:MM")
POUR TOUTE CHAÎNE sMot DE sfichier SÉPARÉE PAR RC nIndice = TABLE_TacheHDP.AjouteLigne(ExtraitChaîne(sMot,1,","),ExtraitChaîne(sMot,2,","),ExtraitChaîne(sMot,3,","),ExtraitChaîne(sMot,4,","),ExtraitChaîne(sMot,5,","),ExtraitChaîne(sMot,6,","),ExtraitChaîne(sMot,7,",")) TableActiveFiltre(TABLE_TacheHDP.COL_Jour, filtreCommencePar, "1-Lundi")
SI hnow > ExtraitChaîne(sMot,5,",") ALORS Trace("Heure différente",hnow) TABLE_TacheHDP[nIndice].Deb_Planif..CouleurFond = RougeClair FIN FIN Message modifié, 24 janvier 2025 - 15:44 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 167 messages |
|
Posté le 24 janvier 2025 - 15:46 |
Merci beaucoup Fabrice, c'est super sympa
Par contre, faut que je cherche comment récupérer l'indice en effet car nIndice = ??. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 205 messages |
|
Posté le 24 janvier 2025 - 15:47 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 167 messages |
|
Posté le 24 janvier 2025 - 16:02 |
Merci encore Fabrice et chapeau bas à tous pour vos compétences
Ca sent super bon, les lignes dépassée sont bien en rouge mais j'ai une petite erreur que je me comprends pas pour l'instant mais je cherche :
|
| |
| |
| | | |
|
| | |
| |
Membre enregistré 205 messages |
|
Posté le 24 janvier 2025 - 16:07 |
Navré, je n'avais pas testé ce code en conditions réelles. Il faut que ton TableActiveFiltre soit placé "après" l'affectation de la couleur (en dernier)
nIndice est un entier hnow est une chaîne = ChaîneVersHeure(HeureSys(), "HH:MM")
POUR TOUTE CHAÎNE sMot DE sfichier SÉPARÉE PAR RC nIndice = TABLE_TacheHDP.AjouteLigne(ExtraitChaîne(sMot,1,","),ExtraitChaîne(sMot,2,","),ExtraitChaîne(sMot,3,","),ExtraitChaîne(sMot,4,","),ExtraitChaîne(sMot,5,","),ExtraitChaîne(sMot,6,","),ExtraitChaîne(sMot,7,",")) SI hnow > ExtraitChaîne(sMot,5,",") ALORS Trace("Heure différente",hnow) TABLE_TacheHDP[nIndice].Deb_Planif..CouleurFond = RougeClair FIN
TableActiveFiltre(TABLE_TacheHDP.COL_Jour, filtreCommencePar, "1-Lundi") FIN Message modifié, 24 janvier 2025 - 16:17 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 167 messages |
|
Posté le 24 janvier 2025 - 16:18 |
Ne soyez pas navré Fabrice, c'est déjà super sympa de m'aider
Effectivement, ça fonctionne nickel.
Sinon je venais de trouver ceci qui fonctionnait aussi : ModeExécution(modePermissif) |
| |
| |
| | | |
|
| | | | |
| | |
|