OVH Cloud OVH Cloud

MFC particuliere

10 réponses
Avatar
Le Surcitaire
Bonjour,

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un
tableau style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge
quand je suis en dessous de 4 en orange quand je suis a 4 et en vert
quand je suis au dessus de 4 mais j'utilise deja les 3 conditions
d'excel pour mes week-end et jours feries alors comment faire?
j'ai essaye ceci

Dans un module

Sub Compare(Saisie As Range)
Dim Sam, i As Integer
Sam = Array(2, 17, 18, 19, 20, 0, 22, 23, 24, 0, 26, 27, 28, 29,
30, 31, 32, 33, 34, 0, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 37, 37,
37, 37)
zz = UBound(Sam)
For i = 0 To UBound(Sam)
If Saisie = "" Then
Saisie.Interior.ColorIndex = xlNone
ElseIf Saisie = Sheets("Code").Range("B4").Offset(0, i)
Then
Saisie.Interior.ColorIndex = Sam(i)
Exit For
Else
Saisie.Interior.ColorIndex = xlNone
End If
Next i
End Sub

Sub Effectif(Saisie As Range)
Dim c As Range
If Not Intersect(Target.Cells, Range("Saisie")) Is Nothing Then
For Each c In Target
Select Case c.FormulaLocal
Case "=4": c.Interior.ColorIndex = 46
Case ">4": c.Interior.ColorIndex = 4
Case "<4": c.Interior.ColorIndex = 3
Case Else: c.Interior.ColorIndex = xlNone
End Select
Next
End If
End Sub

Dans mes feuilles

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim Saisie As Range, i As Integer
If Not Intersect(Target, Range("C6:AG38")) Is Nothing Then
For Each Saisie In Intersect(Target, Range("C6:AG38"))
Compare Saisie
Effectif Saisie
Next Saisie
End If
End Sub

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre

10 réponses

Avatar
claudy
Bonjour ...
[Rouge][<4]0;[Vert][>4]0;[Couleur46]Standard

à mettre dans le format personnalisé de ta cellule
a+
Claudy


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

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un tableau
style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge quand
je suis en dessous de 4 en orange quand je suis a 4 et en vert quand je
suis au dessus de 4 mais j'utilise deja les 3 conditions d'excel pour mes
week-end et jours feries alors comment faire?
j'ai essaye ceci

Dans un module

Sub Compare(Saisie As Range)
Dim Sam, i As Integer
Sam = Array(2, 17, 18, 19, 20, 0, 22, 23, 24, 0, 26, 27, 28, 29, 30,
31, 32, 33, 34, 0, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 37, 37, 37, 37)
zz = UBound(Sam)
For i = 0 To UBound(Sam)
If Saisie = "" Then
Saisie.Interior.ColorIndex = xlNone
ElseIf Saisie = Sheets("Code").Range("B4").Offset(0, i)
Then
Saisie.Interior.ColorIndex = Sam(i)
Exit For
Else
Saisie.Interior.ColorIndex = xlNone
End If
Next i
End Sub

Sub Effectif(Saisie As Range)
Dim c As Range
If Not Intersect(Target.Cells, Range("Saisie")) Is Nothing Then
For Each c In Target
Select Case c.FormulaLocal
Case "=4": c.Interior.ColorIndex = 46
Case ">4": c.Interior.ColorIndex = 4
Case "<4": c.Interior.ColorIndex = 3
Case Else: c.Interior.ColorIndex = xlNone
End Select
Next
End If
End Sub

Dans mes feuilles

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim Saisie As Range, i As Integer
If Not Intersect(Target, Range("C6:AG38")) Is Nothing Then
For Each Saisie In Intersect(Target, Range("C6:AG38"))
Compare Saisie
Effectif Saisie
Next Saisie
End If
End Sub

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre



Avatar
Le Surcitaire
claudy a émis l'idée suivante :
[Rouge][<4]0;[Vert][>4]0;[Couleur46]Standard


Super ton format mais ce n'est pas tous a fait ce que je veux
J'aimerai que se soit la cellule qui se colore

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre

Avatar
FxM
Bonjour,

je n'ai pas tout détaillé et me base sur ta condition de 4 pour trouver
le bout de code à priori concerné. Solution non testée.

Sub Effectif(Saisie As Range)
Dim c As Range
If Not Intersect(Target.Cells, Range("Saisie")) Is Nothing Then
For Each c In Target
if isnumeric(c) then
if c.value = 4 then
c.Interior.ColorIndex = 46
else
if c.value >4 then
c.Interior.ColorIndex = 4
else
c.Interior.ColorIndex = 3
end if
end if
else
c.Interior.ColorIndex = xlNone
end if
Next c
End If
End Sub

@+
FxM



Le Surcitaire wrote:
Bonjour,

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un tableau
style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge
quand je suis en dessous de 4 en orange quand je suis a 4 et en vert
quand je suis au dessus de 4 mais j'utilise deja les 3 conditions
d'excel pour mes week-end et jours feries alors comment faire?
j'ai essaye ceci

Dans un module

Sub Compare(Saisie As Range)
Dim Sam, i As Integer
Sam = Array(2, 17, 18, 19, 20, 0, 22, 23, 24, 0, 26, 27, 28, 29, 30,
31, 32, 33, 34, 0, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 37, 37, 37, 37)
zz = UBound(Sam)
For i = 0 To UBound(Sam)
If Saisie = "" Then
Saisie.Interior.ColorIndex = xlNone
ElseIf Saisie = Sheets("Code").Range("B4").Offset(0, i) Then
Saisie.Interior.ColorIndex = Sam(i)
Exit For
Else
Saisie.Interior.ColorIndex = xlNone
End If
Next i
End Sub

Sub Effectif(Saisie As Range)
Dim c As Range
If Not Intersect(Target.Cells, Range("Saisie")) Is Nothing Then
For Each c In Target
Select Case c.FormulaLocal
Case "=4": c.Interior.ColorIndex = 46
Case ">4": c.Interior.ColorIndex = 4
Case "<4": c.Interior.ColorIndex = 3
Case Else: c.Interior.ColorIndex = xlNone
End Select
Next
End If
End Sub

Dans mes feuilles

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim Saisie As Range, i As Integer
If Not Intersect(Target, Range("C6:AG38")) Is Nothing Then
For Each Saisie In Intersect(Target, Range("C6:AG38"))
Compare Saisie
Effectif Saisie
Next Saisie
End If
End Sub



Avatar
Le Surcitaire
FxM a présenté l'énoncé suivant :
Bonjour,

je n'ai pas tout détaillé et me base sur ta condition de 4 pour trouver le
bout de code à priori concerné. Solution non testée.

Sub Effectif(Saisie As Range)
Dim c As Range
If Not Intersect(Target.Cells, Range("Saisie")) Is Nothing Then
For Each c In Target
if isnumeric(c) then
if c.value = 4 then
c.Interior.ColorIndex = 46
else
if c.value >4 then
c.Interior.ColorIndex = 4
else
c.Interior.ColorIndex = 3
end if
end if
else
c.Interior.ColorIndex = xlNone
end if
Next c
End If
End Sub

@+
FxM



Le Surcitaire wrote:
Bonjour,

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un tableau
style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge quand
je suis en dessous de 4 en orange quand je suis a 4 et en vert quand je
suis au dessus de 4 mais j'utilise deja les 3 conditions d'excel pour mes
week-end et jours feries alors comment faire?
j'ai essaye ceci

Dans un module

Sub Compare(Saisie As Range)
Dim Sam, i As Integer
Sam = Array(2, 17, 18, 19, 20, 0, 22, 23, 24, 0, 26, 27, 28, 29, 30, 31,
32, 33, 34, 0, 36, 39, 40, 41, 42, 43, 44, 45, 46, 47, 37, 37, 37, 37)
zz = UBound(Sam)
For i = 0 To UBound(Sam)
If Saisie = "" Then
Saisie.Interior.ColorIndex = xlNone
ElseIf Saisie = Sheets("Code").Range("B4").Offset(0, i) Then
Saisie.Interior.ColorIndex = Sam(i)
Exit For
Else
Saisie.Interior.ColorIndex = xlNone
End If
Next i
End Sub

Sub Effectif(Saisie As Range)
Dim c As Range
If Not Intersect(Target.Cells, Range("Saisie")) Is Nothing Then
For Each c In Target
Select Case c.FormulaLocal
Case "=4": c.Interior.ColorIndex = 46
Case ">4": c.Interior.ColorIndex = 4
Case "<4": c.Interior.ColorIndex = 3
Case Else: c.Interior.ColorIndex = xlNone
End Select
Next
End If
End Sub

Dans mes feuilles

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

Dim Saisie As Range, i As Integer
If Not Intersect(Target, Range("C6:AG38")) Is Nothing Then
For Each Saisie In Intersect(Target, Range("C6:AG38"))
Compare Saisie
Effectif Saisie
Next Saisie
End If
End Sub

Je ne comprend pas excel me dis que j'ai une erreur dans cette ligne


if Not Intersect(Target.Cells, Range("C42:AG42")) Is Nothing Then

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre


Avatar
FxM
Le Surcitaire wrote:

Je ne comprend pas excel me dit que j'ai une erreur dans cette ligne
if Not Intersect(Target.Cells, Range("C42:AG42")) Is Nothing Then


Pourrais-tu être encore plus imprécis et ne surtout pas nous confier le
n° et la description de l'erreur ? Pour info, cette ligne passe sans
problème sur mon Excel 2000.

@+
FxM

Avatar
FxM
FxM wrote:
Le Surcitaire wrote:

Je ne comprend pas excel me dit que j'ai une erreur dans cette ligne
if Not Intersect(Target.Cells, Range("C42:AG42")) Is Nothing Then



Pourrais-tu être encore plus imprécis et ne surtout pas nous confier le
n° et la description de l'erreur ? Pour info, cette ligne passe sans
problème sur mon Excel 2000.


Je précise : ... pour autant que 'target' existe
en référence -> Sub Effectif(Saisie As Range)

@+
FxM


Avatar
Le Surcitaire
FxM vient de nous annoncer :
FxM wrote:
Le Surcitaire wrote:

Je ne comprend pas excel me dit que j'ai une erreur dans cette ligne
if Not Intersect(Target.Cells, Range("C42:AG42")) Is Nothing Then



Pourrais-tu être encore plus imprécis et ne surtout pas nous confier le n°
et la description de l'erreur ? Pour info, cette ligne passe sans problème
sur mon Excel 2000.


Je précise : ... pour autant que 'target' existe
en référence -> Sub Effectif(Saisie As Range)

@+
FxM


Je pense que j'ai trouve d'ou viens le Pb c²e doit etre le fait que ce
n'est pas la meme zone qui doit etre concerne
en effet la zone saisie est C6:AG38 alors que la zone effectif est
C42:AG42
Je creuse et je vous dit tous ca

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre



Avatar
Patrick Bastard
Bonjour à toi aussi, *Le Surcitaire*.
*Pour reprendre les termes de ton intervention* -voir en fin de message :

Une alternative serait de n'utiliser la MFC pour les jours fériés et WE que
sur la plage contenant les dates, et la deuxième MFC sur les noms, non?
:-)

--
Bien cordialement,
==================================== P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse

Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net

Bonjour,

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un
tableau style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge
quand je suis en dessous de 4 en orange quand je suis a 4 et en vert
quand je suis au dessus de 4 mais j'utilise deja les 3 conditions
d'excel pour mes week-end et jours feries alors comment faire?
j'ai essaye ceci



Avatar
Le Surcitaire
Patrick Bastard a couché sur son écran :
Bonjour à toi aussi, *Le Surcitaire*.
*Pour reprendre les termes de ton intervention* -voir en fin de message :

Une alternative serait de n'utiliser la MFC pour les jours fériés et WE que
sur la plage contenant les dates, et la deuxième MFC sur les noms, non?
:-)

--
Bien cordialement,
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse

Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net

Bonjour,

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un
tableau style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge
quand je suis en dessous de 4 en orange quand je suis a 4 et en vert
quand je suis au dessus de 4 mais j'utilise deja les 3 conditions
d'excel pour mes week-end et jours feries alors comment faire?
j'ai essaye ceci



Mais bien sur
mreci à toi

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre


Avatar
Le Surcitaire
Patrick Bastard a émis l'idée suivante :
Bonjour à toi aussi, *Le Surcitaire*.
*Pour reprendre les termes de ton intervention* -voir en fin de message :

Une alternative serait de n'utiliser la MFC pour les jours fériés et WE que
sur la plage contenant les dates, et la deuxième MFC sur les noms, non?
:-)

--
Bien cordialement,
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse

Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net

Bonjour,

J'ai un classeur avce 12 mois, dans chaque feuil de mois j'ai un
tableau style planning
En colonne A les noms des personne
En colonne B,C,D,...AG j'ai mes jours du mois
J'ai de la ligne 6 a 38 mes noms de personnes
en ligne 40 j'ai cette formule =NB.SI(C12:C39;Code1) qui me donne
l'effectif de personne pour la journée
Ce que j'aimerai faire c'est une MFC qui colore ma cellule en rouge
quand je suis en dessous de 4 en orange quand je suis a 4 et en vert
quand je suis au dessus de 4 mais j'utilise deja les 3 conditions
d'excel pour mes week-end et jours feries alors comment faire?
j'ai essaye ceci



Apres reflexion j'ai besion de la MFC des fours feries et WE dans cette
plage
Merci quand meme

--
enlever lesurcitaire
La Vie n'est rien sans la joie de vivre