XL 2010 Zone texte active si dépasse 19:00 [Résolu]

guy72

XLDnaute Impliqué
Bonjour
Est-il possible d'avoir le texte et la mise en forme d'une zone de texte qui change come la cellule A35 suivant l'heure ?
Pour l'instant, je n'y arrive pas.
 

Pièces jointes

  • Zone de texte.xlsm
    11 KB · Affichages: 11
Solution
Bonjour à tous,

Ce n'est pas une Zone de texte qu'il faut utiliser mais une image, copie de la cellule A35.

Pour la créer utilisez la commande Copier => Copier comme image.

En A34 entrez l'heure limite que vous voulez, on pourra l'effacer.

En A35 créez une MFC pour les couleurs.

Et entrez en A35 cette formule :
Code:
=REPT("à demain";ET(MAINTENANT()-AUJOURDHUI()>A34;A34<>""))
A+

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Guy,
En A35 essayez :
VB:
=SI(A34>19/24;"À demain";A34)
Avec A35 en format "Heure"

Code:
Et un bouton pour effacer au cas ou
Pour effacer quoi ? A34 ou A35 ?
Si c'est A35 il faut que la formule soit faite aussi en VBA, et se calcule à chaque changement d'heure.
 

Pièces jointes

  • Zone de texte.xlsm
    10.7 KB · Affichages: 3

guy72

XLDnaute Impliqué
Quand je ferme mon fichier à partir de 19:00 il faut que j'ai le texte "À demain" dans la zone de texte.
Autrement, il ne faut pas de texte.
Est-il aussi possible d'avoir dans la zone de texte la même MFC que la cellule A35
Fond rouge police blanche et gras
Pour effacer au cas ou, c'est effacer la zone si je ne veux pas de texte à ce moment là.
 
Dernière édition:

guy72

XLDnaute Impliqué
Ma contribution
Ça fonctionne, mais dans A35, il faut changer "19:30" par 19/24 (comme me l'on montré les messages précédents).
Par contre quand c'est avant 19:00, il ne faut pas de texte dans la zone (c'est pourquoi, j'ai mis en fin de formule "A36" cellule vierge (mais çà ne fait rien)
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour à tous,

Ce n'est pas une Zone de texte qu'il faut utiliser mais une image, copie de la cellule A35.

Pour la créer utilisez la commande Copier => Copier comme image.

En A34 entrez l'heure limite que vous voulez, on pourra l'effacer.

En A35 créez une MFC pour les couleurs.

Et entrez en A35 cette formule :
Code:
=REPT("à demain";ET(MAINTENANT()-AUJOURDHUI()>A34;A34<>""))
A+
 

Pièces jointes

  • Image.xlsx
    14.9 KB · Affichages: 6

guy72

XLDnaute Impliqué
Ça me plais bien, mais c'est l'inverse
il faut qu'il y ait le texte dans l'image à partir de 19:00 alors que là, je l'ai en dehors de 19:00.
Dans la cellule E34, il faut la fonction =MAINTENANT() pour ne pas changer, mais ça ne fonctionne pas.
 

guy72

XLDnaute Impliqué
Je voudrais que la cellule A34 contienne la formule =MAINTENANT(), au format heure (19:00), ce soir à partir du moment ou il sera 19:00 dans cette cellule l'image devrait avoir un fond rouge et un texte "À demain, si je fait l'essai, ce n'est pas le cas.

1) Dans le fichier en cellule 34 il y a12:00 (il ne devrait rien avoir dans l'image.
2) Dans le fichier en cellule 34 si je saisie 19:00 (il ne devrait avoir "└ demain) dans l'image.
 
Dernière édition:

job75

XLDnaute Barbatruc
Maintenant() n'est hélas pas une horloge.
Tout à fait alors mettons un chrono en A34.

Le code VBA dans ThisWorkbook :
VB:
Private Sub Workbook_Open() ')
Feuil1.[A34] = Format(Now, "hh:mm:ss")
Chrono 'lqnce le processus
End Sub
Dans la feuille :
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
[A34] = Format(Now, "hh:mm:ss")
Chrono 'lance le processus
End Sub
Dans Module1 :
VB:
Sub Chrono()
If Feuil1.[A34] = "" Then Exit Sub
Feuil1.[A34] = Format(Now, "hh:mm:ss")
Application.OnTime Now + 1 / 86400, "Chrono"
End Sub
En A35 on a simplement :
Code:
=REPT("à demain";A34>A28)
A28 et A34 sont au format Texte.
 

Pièces jointes

  • Image.xlsm
    23 KB · Affichages: 4

job75

XLDnaute Barbatruc
En toute rigueur il faut utiliser une variable mémorisée t dans Module1 pour éviter la création d'une pile dans le processus si l'on fait de nombreux doubles-clics :
VB:
Dim t 'mémorise la variable

Sub Chrono()
On Error Resume Next
Application.OnTime t, "Chrono", , False
If Feuil1.[A34] = "" Then Exit Sub
Feuil1.[A34] = Format(Now, "hh:mm:ss")
t = Now + 1 / 86400
Application.OnTime t, "Chrono"
End Sub
 

Pièces jointes

  • Image.xlsm
    23.2 KB · Affichages: 2

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 679
dernier inscrit
Yupanki