Couleur d'une cellule

Résolu
Bonjour

Je voudrais faire une macro quand je rentre quelque chose dans une cellule (ex:C1 ) a une certaine heure
la cellule A1 devient jaune si je rentre quelque chose dans C1 entre 6h00 et 14h00 ou
la cellule A1 devient verte si je quelque chose dans C1 entre 14h00 et 22h00 ou
la cellule A1 devient bleu si je quelque chose dans C1 entre 22h00 et 6h00

Merci
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. Contributeur
    Je viens d'essayer, ça marche ici
    voici ma feuille de test http://www.cijoint.fr/cij102327505726055.xls
    bon courage
    eric
    1
    1. Contributeur
      Bonsoir,

      En macro voilà ce que ça pourrait être :
      La macro récupère la couleur de fond des cellules B1, C1 et D1 pour l'appliquer selon les heures
      B1 C1 D1
      6h-14h 14h-22h 22h-6h
      (ou sinon tu fournis directement la valeur de la couleur dans la macro)

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim Zonedest As Range
      Dim H As Long
      Set Zonedest = Union([B:B], [5:5], [B5:C8]) 'liste des zones ou tu veux que la macro réagisse (colonne B ou ligne 5 ou zone B5:C8)

      Set Intersec = Intersect(Zonedest, Target)
      If Intersec Is Nothing Then
      ' l'édition n'a pas eu lieu dans ces zones
      Else
      ' l'édition a eu lieu dans ces zones
      H = Hour(Now)
      If H < 6 Or H >= 22 Then 'bleu
      Target.Interior.ColorIndex = [D1].Interior.ColorIndex
      ElseIf H >= 6 And H < 14 Then 'jaune
      Target.Interior.ColorIndex = [B1].Interior.ColorIndex
      Else 'vert
      Target.Interior.ColorIndex = [C1].Interior.ColorIndex
      End If
      End If
      End Sub

      Sinon tu dois avoir une possiblité par le format conditionnel (mais 3 tests possible seulement)
      Cdt
      Eric
      0
      1. Contributeur
        petit complément : si la cellule est modifiée elle prendra la couleur de l'heure de modif.
        Si tu ne le désires pas il faudrait tester sa colorindex et ne la modifier que si differente de xlColorIndexAutomatic ou xlColorIndexNone par exemple...
        0
        1. je vais essayer ceci
          je te dirais quoi demain
          ET Merci
          0
          1. J'ai une erreur a Set Intersec = Intersect(Zonedest, Target)
            If Intersec Is Nothing Then

            Je suis nouveau en vb excel
            merci
            0
            1. Eric
              IMPEC
              MERCI beaucoup
              0