Couleur d'une cellule

Résolu/Fermé
yoyolc Messages postés 4 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 18 septembre 2007 - 16 sept. 2007 à 19:17
yoyolc Messages postés 4 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 18 septembre 2007 - 18 sept. 2007 à 17:42
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

6 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
18 sept. 2007 à 00:02
Je viens d'essayer, ça marche ici
voici ma feuille de test http://www.cijoint.fr/cij102327505726055.xls
bon courage
eric
1
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
16 sept. 2007 à 23:19
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
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
16 sept. 2007 à 23:25
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
yoyolc Messages postés 4 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 18 septembre 2007
17 sept. 2007 à 00:04
je vais essayer ceci
je te dirais quoi demain
ET Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yoyolc Messages postés 4 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 18 septembre 2007
17 sept. 2007 à 23:17
J'ai une erreur a Set Intersec = Intersect(Zonedest, Target)
If Intersec Is Nothing Then

Je suis nouveau en vb excel
merci
0
yoyolc Messages postés 4 Date d'inscription dimanche 16 septembre 2007 Statut Membre Dernière intervention 18 septembre 2007
18 sept. 2007 à 17:42
Eric
IMPEC
MERCI beaucoup
0