Couleur d'une cellule
Résolu
yoyolc
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
yoyolc Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
yoyolc Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Couleur d'une cellule
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
- Aller à la ligne dans une cellule excel - Guide
- Proteger cellule excel - Guide
6 réponses
Je viens d'essayer, ça marche ici
voici ma feuille de test http://www.cijoint.fr/cij102327505726055.xls
bon courage
eric
voici ma feuille de test http://www.cijoint.fr/cij102327505726055.xls
bon courage
eric
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
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
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question