Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MEFC 8 couleurs suivant heures renseignées dans une cellule

11 réponses
Avatar
Seynod74
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque cellule
des colonnes i à n suivant l'heure renseignée dans celles-ci prennent la
couleur définie dans la feuille 'Couleurs'
Merci

10 réponses

1 2
Avatar
Francois L
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque cellule
des colonnes i à n suivant l'heure renseignée dans celles-ci prennent la
couleur définie dans la feuille 'Couleurs'
Merci


Bonjour,

Des exemples et techniques de MEFC avec plein de couleurs chez Misange
(comme d'habitude).

http://www.excelabo.net/xl/conditions.php

--
François L

Avatar
Seynod74
Voilà le code que j'ai déjà adapté à partir d'un autre fichier.
Mais, je n'arrive pas à le répété pour les colonnes j,k,l,m,n soit
(mardi,mercredi,jeudi,vendredi,samedi)
merci

Private Sub Worksheet_Change(ByVal Target As Range)
' Macro enregistrée le 31/10/2004 par BERNARD
' Aide d'Isabelle mailto:
Set Sh = Sheets("Couleurs")
Set plg = Sh.Range("a1:a" & Sh.Range("a65536").End(xlUp).Row)
x = Not IsError(Application.Match(Target, plg, 0))
If Not IsError(Application.Match(Target, plg, 0)) Then

With Sheets("Couleurs").Range("a" & Application.Match(Target, plg,
0)).Interior
CI = .ColorIndex
P = .Pattern
PCI = .PatternColorIndex
End With

With Range("i" & Target.Row & ":i" & Target.Row).Interior
.ColorIndex = CI
.Pattern = P
.PatternColorIndex = PCI
End With

Else
Range("a" & Target.Row & ":a" & Target.Row).Interior.ColorIndex = xlNone
End If

Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("A1:A65536"))
If Not Rg Is Nothing Then
For Each C In Rg
If C.HasFormula = False Then
Application.EnableEvents = False
C.Value = UCase(C)
Application.EnableEvents = True
End If
Next
End If
Set C = Nothing: Set Rg = Nothing

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
' Macro enregistrée le 31/10/2004 par BERNARD
' Aide d'Isabelle mailto:
Set Sh = Sheets("Couleurs")
Set plg = Sh.Range("a1:a" & Sh.Range("a65536").End(xlUp).Row)
x = Not IsError(Application.Match(Target, plg, 0))
If Not IsError(Application.Match(Target, plg, 0)) Then

With Sheets("Couleurs").Range("a" & Application.Match(Target, plg,
0)).Interior
CI = .ColorIndex
P = .Pattern
PCI = .PatternColorIndex
End With

With Range("i" & Target.Row & ":i" & Target.Row).Interior
.ColorIndex = CI
.Pattern = P
.PatternColorIndex = PCI
End With

Else
Range("a" & Target.Row & ":a" & Target.Row).Interior.ColorIndex = xlNone
End If

Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range("A1:A65536"))
If Not Rg Is Nothing Then
For Each C In Rg
If C.HasFormula = False Then
Application.EnableEvents = False
C.Value = UCase(C)
Application.EnableEvents = True
End If
Next
End If
Set C = Nothing: Set Rg = Nothing

End Sub


Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque cellule
des colonnes i à n suivant l'heure renseignée dans celles-ci prennent la
couleur définie dans la feuille 'Couleurs'
Merci


Bonjour,

Des exemples et techniques de MEFC avec plein de couleurs chez Misange
(comme d'habitude).

http://www.excelabo.net/xl/conditions.php

--
François L




Avatar
Jacky
Bonjour,

Peut-être ceci:
'-----
Sub jj()
Application.ScreenUpdating = False
dercol = Cells.Find("*", , 1, , 2, 2).Column
derlg = Cells.Find("*", , 1, , 1, 2).Row
For Each c In Range(Cells(2, 1), Cells(derlg, dercol))
On Error Resume Next
If Application.Match(c, [Couleurs!A:A], 0) Then c.Interior.ColorIndex Sheets("Couleurs").Cells(Application.Match(c, [Couleurs!A:A], 0),
1).Interior.ColorIndex
Next
End Sub
'---------
Salutations
JJ

"Seynod74" a écrit dans le message de
news:
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque
cellule

des colonnes i à n suivant l'heure renseignée dans celles-ci prennent la
couleur définie dans la feuille 'Couleurs'
Merci


Avatar
Seynod74
En fait, j'ai renoncé de me servir d'une feuille 'Couleurs'
Je travaille qu'avec la feuille principale dont voici le VBA qui marche.
Mais, le format de la ligne Case ("6h50") m'empèche ensuite de l'exploiter
afin d'ajouter une validation avec formule dans les cellules.
Peut-on saisir ce format heure d'une autre façon ?
Merçi

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6H50"
Target.Interior.ColorIndex = 19
Case "7H00"
Target.Interior.ColorIndex = 27
Case "7H20"
Target.Interior.ColorIndex = 40
Case "7H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42


Bonjour,

Peut-être ceci:
'-----
Sub jj()
Application.ScreenUpdating = False
dercol = Cells.Find("*", , 1, , 2, 2).Column
derlg = Cells.Find("*", , 1, , 1, 2).Row
For Each c In Range(Cells(2, 1), Cells(derlg, dercol))
On Error Resume Next
If Application.Match(c, [Couleurs!A:A], 0) Then c.Interior.ColorIndex > Sheets("Couleurs").Cells(Application.Match(c, [Couleurs!A:A], 0),
1).Interior.ColorIndex
Next
End Sub
'---------
Salutations
JJ

"Seynod74" a écrit dans le message de
news:
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque
cellule

des colonnes i à n suivant l'heure renseignée dans celles-ci prennent la
couleur définie dans la feuille 'Couleurs'
Merci







Avatar
Francois L
En fait, j'ai renoncé de me servir d'une feuille 'Couleurs'
Je travaille qu'avec la feuille principale dont voici le VBA qui marche.
Mais, le format de la ligne Case ("6h50") m'empèche ensuite de l'exploiter
afin d'ajouter une validation avec formule dans les cellules.
Peut-on saisir ce format heure d'une autre façon ?
Merçi

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6H50"
Target.Interior.ColorIndex = 19
Case "7H00"
Target.Interior.ColorIndex = 27
Case "7H20"
Target.Interior.ColorIndex = 40
Case "7H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42



Re,

Pour excel, un jour(1440 minutes) = 1 unité

donc 6H50 est = à
(1/1440) * 410

7H00 = à
(1/1440) * 420

etc...

transforme des case de cette manière et cela fonctionnera.

--
François L

Avatar
Jacky
Re..........
Ceci peut-être, si les heures sont rentrées sous la forme 6:50 formatées
hHmm
'---------
Private Sub Worksheet_Change(ByVal Target As Range)
x = Format(Target, "hhHmm")
Select Case x
Case "06H50"
Target.Interior.ColorIndex = 19
Case "07H00"
Target.Interior.ColorIndex = 27
Case "07H20"
Target.Interior.ColorIndex = 40
Case "07H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42
End Select
End Sub
'----------
Salutations
JJ

"Seynod74" a écrit dans le message de
news:
En fait, j'ai renoncé de me servir d'une feuille 'Couleurs'
Je travaille qu'avec la feuille principale dont voici le VBA qui marche.
Mais, le format de la ligne Case ("6h50") m'empèche ensuite de l'exploiter
afin d'ajouter une validation avec formule dans les cellules.
Peut-on saisir ce format heure d'une autre façon ?
Merçi

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6H50"
Target.Interior.ColorIndex = 19
Case "7H00"
Target.Interior.ColorIndex = 27
Case "7H20"
Target.Interior.ColorIndex = 40
Case "7H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42


Bonjour,

Peut-être ceci:
'-----
Sub jj()
Application.ScreenUpdating = False
dercol = Cells.Find("*", , 1, , 2, 2).Column
derlg = Cells.Find("*", , 1, , 1, 2).Row
For Each c In Range(Cells(2, 1), Cells(derlg, dercol))
On Error Resume Next
If Application.Match(c, [Couleurs!A:A], 0) Then c.Interior.ColorIndex > > Sheets("Couleurs").Cells(Application.Match(c, [Couleurs!A:A], 0),
1).Interior.ColorIndex
Next
End Sub
'---------
Salutations
JJ

"Seynod74" a écrit dans le message
de


news:
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque
cellule

des colonnes i à n suivant l'heure renseignée dans celles-ci prennent
la



couleur définie dans la feuille 'Couleurs'
Merci









Avatar
Seynod74
Merci pour cette conversion, la couleur de la cellule change bien en fonction
du code case 410 (ou autre) en mettant dans la cellule 6h50 ou (autre)
Mais ! comment me servir de cet horaire 6h50 dans une formule d'addition
d'heures ( exemple à cet horaire, je veux ajouter une cellule contenant un
nombre d'heure(format hh:mm)
merçi


En fait, j'ai renoncé de me servir d'une feuille 'Couleurs'
Je travaille qu'avec la feuille principale dont voici le VBA qui marche.
Mais, le format de la ligne Case ("6h50") m'empèche ensuite de l'exploiter
afin d'ajouter une validation avec formule dans les cellules.
Peut-on saisir ce format heure d'une autre façon ?
Merçi

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6H50"
Target.Interior.ColorIndex = 19
Case "7H00"
Target.Interior.ColorIndex = 27
Case "7H20"
Target.Interior.ColorIndex = 40
Case "7H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42



Re,

Pour excel, un jour(1440 minutes) = 1 unité

donc 6H50 est = à
(1/1440) * 410

7H00 = à
(1/1440) * 420

etc...

transforme des case de cette manière et cela fonctionnera.

--
François L




Avatar
Francois L
Merci pour cette conversion, la couleur de la cellule change bien en fonction
du code case 410 (ou autre) en mettant dans la cellule 6h50 ou (autre)
Mais ! comment me servir de cet horaire 6h50 dans une formule d'addition
d'heures ( exemple à cet horaire, je veux ajouter une cellule contenant un
nombre d'heure(format hh:mm)
merçi



Re,

Vas donc consulter la page qui suit...
http://xlwiki.free.fr/wiki/wakka.php?wiki=HeuRes

tu y trouveras, je pense, les réponses à tes questions. Si non, reviens
ici en précisant la question.

--
François L

Avatar
Seynod74
Si je rentre les heures (exemple 6h50) sous ce formatage hHmm alors mon code
VBA pour colorier la cellule, avec cette heure (6h50) sous ce formatage, ne
fonctionne plus.
Mon code : Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case 410
ou celui-ci : Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6h50"


Re..........
Ceci peut-être, si les heures sont rentrées sous la forme 6:50 formatées
hHmm
'---------
Private Sub Worksheet_Change(ByVal Target As Range)
x = Format(Target, "hhHmm")
Select Case x
Case "06H50"
Target.Interior.ColorIndex = 19
Case "07H00"
Target.Interior.ColorIndex = 27
Case "07H20"
Target.Interior.ColorIndex = 40
Case "07H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42
End Select
End Sub
'----------
Salutations
JJ

"Seynod74" a écrit dans le message de
news:
En fait, j'ai renoncé de me servir d'une feuille 'Couleurs'
Je travaille qu'avec la feuille principale dont voici le VBA qui marche.
Mais, le format de la ligne Case ("6h50") m'empèche ensuite de l'exploiter
afin d'ajouter une validation avec formule dans les cellules.
Peut-on saisir ce format heure d'une autre façon ?
Merçi

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6H50"
Target.Interior.ColorIndex = 19
Case "7H00"
Target.Interior.ColorIndex = 27
Case "7H20"
Target.Interior.ColorIndex = 40
Case "7H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42


Bonjour,

Peut-être ceci:
'-----
Sub jj()
Application.ScreenUpdating = False
dercol = Cells.Find("*", , 1, , 2, 2).Column
derlg = Cells.Find("*", , 1, , 1, 2).Row
For Each c In Range(Cells(2, 1), Cells(derlg, dercol))
On Error Resume Next
If Application.Match(c, [Couleurs!A:A], 0) Then c.Interior.ColorIndex > > > Sheets("Couleurs").Cells(Application.Match(c, [Couleurs!A:A], 0),
1).Interior.ColorIndex
Next
End Sub
'---------
Salutations
JJ

"Seynod74" a écrit dans le message
de


news:
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des heures
renseignées et une couleur différente de cellule pour chaque heure.
Dans une autre feuille du classeur, j'ai un tableau et aux entêtes de
colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que chaque
cellule

des colonnes i à n suivant l'heure renseignée dans celles-ci prennent
la



couleur définie dans la feuille 'Couleurs'
Merci














Avatar
Jacky
Re...
Exemple ici:
http://cjoint.com/?iAqdbSJkZf
JJ

"Seynod74" a écrit dans le message de
news:
Si je rentre les heures (exemple 6h50) sous ce formatage hHmm alors mon
code

VBA pour colorier la cellule, avec cette heure (6h50) sous ce formatage,
ne

fonctionne plus.
Mon code : Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case 410
ou celui-ci : Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6h50"


Re..........
Ceci peut-être, si les heures sont rentrées sous la forme 6:50 formatées
hHmm
'---------
Private Sub Worksheet_Change(ByVal Target As Range)
x = Format(Target, "hhHmm")
Select Case x
Case "06H50"
Target.Interior.ColorIndex = 19
Case "07H00"
Target.Interior.ColorIndex = 27
Case "07H20"
Target.Interior.ColorIndex = 40
Case "07H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42
End Select
End Sub
'----------
Salutations
JJ

"Seynod74" a écrit dans le message
de


news:
En fait, j'ai renoncé de me servir d'une feuille 'Couleurs'
Je travaille qu'avec la feuille principale dont voici le VBA qui
marche.



Mais, le format de la ligne Case ("6h50") m'empèche ensuite de
l'exploiter



afin d'ajouter une validation avec formule dans les cellules.
Peut-on saisir ce format heure d'une autre façon ?
Merçi

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "6H50"
Target.Interior.ColorIndex = 19
Case "7H00"
Target.Interior.ColorIndex = 27
Case "7H20"
Target.Interior.ColorIndex = 40
Case "7H30"
Target.Interior.ColorIndex = 44
Case "13H50"
Target.Interior.ColorIndex = 20
Case "14H00"
Target.Interior.ColorIndex = 28
Case "14H20"
Target.Interior.ColorIndex = 37
Case "14H30"
Target.Interior.ColorIndex = 42


Bonjour,

Peut-être ceci:
'-----
Sub jj()
Application.ScreenUpdating = False
dercol = Cells.Find("*", , 1, , 2, 2).Column
derlg = Cells.Find("*", , 1, , 1, 2).Row
For Each c In Range(Cells(2, 1), Cells(derlg, dercol))
On Error Resume Next
If Application.Match(c, [Couleurs!A:A], 0) Then
c.Interior.ColorIndex > > > > Sheets("Couleurs").Cells(Application.Match(c, [Couleurs!A:A], 0),




1).Interior.ColorIndex
Next
End Sub
'---------
Salutations
JJ

"Seynod74" a écrit dans le
message




de
news:
Bonjour,

J'ai une feuille nommée 'Couleurs' avec dans la colonne A des
heures





renseignées et une couleur différente de cellule pour chaque
heure.





Dans une autre feuille du classeur, j'ai un tableau et aux entêtes
de





colonnes i à n les jours suivants :
lundi,mardi,mercredi,jeudi,vendredi,samedi. Je souhaiterai que
chaque





cellule
des colonnes i à n suivant l'heure renseignée dans celles-ci
prennent





la
couleur définie dans la feuille 'Couleurs'
Merci
















1 2