mise en forme conditionnelle selon une heure d'inscription dans la cellule

degards

XLDnaute Occasionnel
Bonjour à vous !!!

Existe-t-il une manière de faire une mise en forme conditionnelle en fonction de l'heure où l'on inscrit une donné dans une cellule. Je m'explique, dans C1 je fais inscrire 001, qui est en sorte la première opération dans mon tableur pour le travail. Si j'ai inscrit 001 à 04h45 du matin, j'aimerais que la cellule ait le fond noir et que 001 soit blanc. Parcontre si je fais l'inscription à 17h30 par exemple, j'aimerais que le fond soit gris simplement.

J'ai cherché mais je trouve pas comment faire

Merci

Degards
 

leakim

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

bonjour,
Voici une formule à adapter à tes créneaux
Code:
=ET(TEMPS(HEURE(MAINTENANT());MINUTE(MAINTENANT());"00")>=TEMPSVAL("08:00");TEMPS(HEURE(MAINTENANT());MINUTE(MAINTENANT());"00")<=TEMPSVAL("10:00"))

Leakim
 

degards

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

OUFFF !!! tout une formule, mais j'aimerais bien la comprendre STP. Je présume que le "08:00" et le "10:00" représente des références dans tout cela.

Merci beaucoup pour ton aide

Aide
 

leakim

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Bonjour,
Oui ce sont les références. Je veux bien passer la formule en langage courant, mais si tu as fichier à joindre cela serait mieux !

cordialement,
Leakim
 

degards

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Merci encore Leakim !!!


Je te joins mon fichier et j'ai été capable de mettre mes heures en référence pour les différentes mise en forme conditionnelle. Qu'est ce que tu veux dire par langage courant ? Parcontre j'ai remarqué que mes cellules changent de couleur, selon mes conditions, lorsque l'heure avance sur mon ordinateur. Ce que j'aurais aimé c'est la cellule garde le même format même si l'heure avec le temps. Si tu jete un oeil sur mon fichier tu vas surement comprendre.

En résumé : si j'inscris "001" dans la celllule C7 alors qu'il est 08h00, le fond de la cellule reste blanc et je ne veux plus que cela change. Si j'inscris "002" dans C8 alors qu'il est 16h00, le fond de la cellule devient gris et reste ainsi. Même chose si j'inscris "003" dans C9 alors qu'il est 02h00 de la nuit, le fond de la cellule devient noir et dois le rester.

Une autre chose que je ne comprends pas c'est que je ne suis pas capable de faire du copier/coller avec ma version d'excel (qui est 2003). Je voudrais créer une macro pour insérer un nouvelle ligne si requis mais je ne suis pas capable de faire copier/coller. Peut-être que dans mes différents VB quelque chose provoque cela.

Merci encore de ton aide !!

Degards
 

Pièces jointes

  • registre unité modifié (heure).zip
    111.8 KB · Affichages: 89
Dernière édition:

leakim

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Bonjour,
Désolé pour ce moment de silence, j'ai pas su faire autrement.
J'ai regardé ton fichier et si j'ai bien compris ta demande tu veux conditionner ta MFC avec l'heure au moment de la saisie et qu'elle soit Figer? Si c'est çà il faut passer par de la macro. Et là c'est le drame... Je ne suis pas à ton niveau alors tu penses que je vais pas d'être d'une très garde aide.
Désolé, mais je passe la main aux VBAiste.

Cordialement,
Leeakim
 

tototiti2008

XLDnaute Barbatruc
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Bonjour degards, Bonjour leakim,

Visiblement ton classeur est déjà truffé de code évenementiel
Est-ce toi qui l'a mis en place?
Si oui, il faut compléter tes Worksheet_Change avec des critères sur les heures pour la colonne C
 
Dernière édition:

degards

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Bonjour tototiti2008 !!!

Ce n'est pas moi qui ait mis tout cela en place j'ai obtenu de l'aide ici car je ne suis pas callé en VB. Donc ton histoire de compléter mes Worksheet_Change, je n'y comrpends rien malheureusement.

Degards
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

bonjour à tous,

n'ayant pas plus de précisions concernant les espace-temps pour mettre en couleur........
j'ai "imposé":
le blanc avant 08:00
le gris entre 08:00:01 et 16:00
le noir après 16:00

il est nécessaire de supprimer les MFC en colonne C
la modif concerne les 8 premières lignes ajoutées


avec ce code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C7:C42")) Is Nothing Then
If Target <> "" And Time <= "08:00:00" Then Target.Interior.Color = RGB(255, 255, 255)
If Target <> "" And Time > "08:00:00" And Time <= "16:00:00" Then Target.Interior.Color = RGB(127, 127, 127)
If Target <> "" And Time > "16:00:00" Then
Target.Interior.Color = RGB(0, 0, 0)
Target.Font.Color = RGB(255, 255, 255)
End If
End If



  If Not Intersect([f7:f65], Target) Is Nothing And Target.Count = 1 Then
    codes = Split(Target, ":")
    For i = LBound(codes) To UBound(codes)
      If IsNumeric(codes(i)) Then
        nature = Application.VLookup(Val(codes(i)), [codesMIP], 2, False)
      Else
        nature = Application.VLookup(codes(i), [codesMIP], 2, False)
      End If
      If Not IsError(nature) Then
        tmp = tmp & nature & ", "
      End If
    Next i
    'Application.EnableEvents = False
    If tmp <> "" Then
      Target.Offset(, 1) = Left(tmp, Len(tmp) - 2)
    Else
      Target.Offset(, 1) = ""
    End If
    'Application.EnableEvents = True
  End If
End Sub

à+
Philippe
 
Dernière édition:

degards

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Merci beaucoup Philippe, je vais essayer cela au courant de la journée selon les heures que j'ai modifié. Mais je ne comprends pas pourquoi tu dis que c'Est seulement pour les 8 premières lignes car dans ton code c'est inscrit "Target, Range("c7:c42")".
Par la même occasion, à l'aide de mon fichier joint plus haut, est-ce que tu comprends pourquoi je ne peux pas faire du copier/coller, car je voulais ajouter une macro pour ajouter une ligne au besoin mais impossible de faire coller.

Merci encore !!!

Degards
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Re,

................... Mais je ne comprends pas pourquoi tu dis que c'Est seulement pour les 8 premières lignes car dans ton code c'est inscrit "Target, Range("c7:c42")".

Au cas où le français ne serait pas ta langue parlée couramment, la modif concerne les 8 premières lignes ajoutées dans le code

..............Par la même occasion, à l'aide de mon fichier joint plus haut, est-ce que tu comprends pourquoi je ne peux pas faire du copier/coller, car je voulais ajouter une macro pour ajouter une ligne au besoin mais impossible de faire coller.

il serait utile d'être un peu plus précis: copier quoi ?, et le coller où ?

je viens de remarquer qu'il y la me même code dans 5 feuilles identiques et dans le ThisWorkBook
.......... tout cela me paraît bien inutile

mais ce qui me gêne le plus ce sont les cellules fusionnées en colonnes C, D & E qui vont poser problème pour faire disparaître les couleurs lorsqu'il faudra effacer le contenu de ces cellules fusionnées

il serait également nécessaire de préciser les tranches horaires et la couleur à appliquer en fonction de celles-ci

à+

Philippe
 

degards

XLDnaute Occasionnel
Re : mise en forme conditionnelle selon une heure d'inscription dans la cellule

Bonjour phlaurent55 !!!

Désolé j'avais mal lu ton message précédent, je pensais que ta macro affectait seulement les 8 premières lignes de ma feuille. Encore une fois désolé.

Pour ce qui est du copier-collé et bien je voulais créer une macro pour pouvoir ajouter une ligne à n'importe quel moment. Je voulais créer cette macro en effectuant un copié collé d'une ligne vierge afin d'en ajouter une. C'est à ce moment que je me suis rendu compte que je ne pouvais pas faire la fonction coller après que j'ai fait copié.

Existe-t-il un autre moyen qui me permettrait d'ajouter une ligne à n'importe quel moment et n'importe où dans la feuille. Par exemple si je veux ajouter une ligne entre la ligne 14 et 15. Et j'aimerais que les cellules M et AK de la ligne aient les bonnes formules.

Tu disais qu'il te paraissait bien inutile d'avoir le même code dans les 5 feuilles et dans le ThisWorkBook. J'ai tenté de laisser le code dans la ThisWorkBook seulement et cela fait en sorte que je n'ai plus les menus déroulant pour les colonnes G et AJ. Voila pourquoi il y a tout ces codes. Existerat-il quelque chose de plus simple.

Merci Encore

Degards
 

Statistiques des forums

Discussions
312 078
Messages
2 085 110
Membres
102 783
dernier inscrit
Basoje