OVH Cloud OVH Cloud

Couleur de cellule

7 réponses
Avatar
Denys
Bonjour à tous,

Avec un userform, l'usager entrera des données dans quelques colonnes (6 au
total) à partir de la colonne C. Dans la colonne B se trouvent les dates
correspondantes aux journées où sont entrées les données....

Si les dates dans ces cellules correspondent à un jour férié ou à une fin de
semaine, les cellules sont en rouge.

Alors, je voudrais que lorsque les données sont inscrites avec le userform
que celui-ci vérifie si la cellule suivante est en rouge... Si oui, elle
inscrit le même résultat dans la ligne suivante.... Voici un peu le code....

Dim Ligne As Long
With ActiveSheet()
Ligne = .[C65536].End(xlUp)(2).Row
.Range("C" & Ligne) = Me.TextBox1.Value

if .range("C" & Ligne).Offset( 1, -1).Interior.ColorIndex =
3 Then _
.range("C" & Ligne)=Me.Textbox1.Value
end if

next (afin de vérifier si la cellule suivante est aussi en
rouge....)

Auriez-vous une idée comment je pourrais écrire cela?

Merci

Denys

7 réponses

Avatar
Jo-Soupin
bonjour Denys,

sous réserve d'avoir tout compris,
if .range("C" & Ligne).Offset( 2, -1).Interior.ColorIndex =3 then
.range("C" & Ligne+1)=Me.Textbox1.Value
end if
Avatar
Denys
Bonjour Jo-Soupin

Merci beaucoup pour ta réponse.... Cependant, il ne semble pas qu'Excel
reconnaisse la propriété Interior.ColorIndex comme étant 3

Depuis le début que j'essaie avec Interior.ColorIndex.... et je fais patate
!!!!

Est-ce parce que la couleur de la cellule est dûe à une MFC et que le no de
la couleur rouge n'est pas 3 ???

Je nage....

Denys


bonjour Denys,

sous réserve d'avoir tout compris,
if .range("C" & Ligne).Offset( 2, -1).Interior.ColorIndex =3 then
.range("C" & Ligne+1)=Me.Textbox1.Value
end if




Avatar
michdenis
Bonjour Denys,

Pour récupérer si oui ou non une mise en forme conditionnelle est en application dans une cellule (donc la couleur rouge), tu dois
obligatoirement tester ta condition (formule) que tu utilises dans la mise en forme conditionnelle sur la dite cellule.

Il est impossible d'utiliser comme tu le fais la propriété "ColorIndex" pour vérifier la couleur d'un fond de cellule ou de la
couleur du texte de cette dernière si cette couleur provient d'une mise en forme conditionnelle.

Si besoin, dis-nous la formule que tu utilises dans ta mise en forme conditionnelle.


Salutations!




"Denys" a écrit dans le message de news:
Bonjour à tous,

Avec un userform, l'usager entrera des données dans quelques colonnes (6 au
total) à partir de la colonne C. Dans la colonne B se trouvent les dates
correspondantes aux journées où sont entrées les données....

Si les dates dans ces cellules correspondent à un jour férié ou à une fin de
semaine, les cellules sont en rouge.

Alors, je voudrais que lorsque les données sont inscrites avec le userform
que celui-ci vérifie si la cellule suivante est en rouge... Si oui, elle
inscrit le même résultat dans la ligne suivante.... Voici un peu le code....

Dim Ligne As Long
With ActiveSheet()
Ligne = .[C65536].End(xlUp)(2).Row
.Range("C" & Ligne) = Me.TextBox1.Value

if .range("C" & Ligne).Offset( 1, -1).Interior.ColorIndex 3 Then _
.range("C" & Ligne)=Me.Textbox1.Value
end if

next (afin de vérifier si la cellule suivante est aussi en
rouge....)

Auriez-vous une idée comment je pourrais écrire cela?

Merci

Denys
Avatar
Denys
Bonjour Denis,

Merci, ça explique pourquoi..... J'en ai perdu du temps là-dessus...

La formule que j'utilise pour la mise en forme conditionnelle est la suivante:

=OR(ISNUMBER(MATCH(A8,jf,0)),WEEKDAY(A8,2) > 5)

En A8, j'ai la date correspondant à la journée où seront entrées les
données...
en B8, le jour de la semaine correspondant avec la MFC
Si la condition est vraie, (donc jour férié, samedi ou dimanche) alors la
cellule devient rouge.

jf = jours fériés, plage où sont entrés les jours fériés de l'année en cours.

Merci beaucoup

Denys


Bonjour Denys,

Pour récupérer si oui ou non une mise en forme conditionnelle est en application dans une cellule (donc la couleur rouge), tu dois
obligatoirement tester ta condition (formule) que tu utilises dans la mise en forme conditionnelle sur la dite cellule.

Il est impossible d'utiliser comme tu le fais la propriété "ColorIndex" pour vérifier la couleur d'un fond de cellule ou de la
couleur du texte de cette dernière si cette couleur provient d'une mise en forme conditionnelle.

Si besoin, dis-nous la formule que tu utilises dans ta mise en forme conditionnelle.


Salutations!




"Denys" a écrit dans le message de news:
Bonjour à tous,

Avec un userform, l'usager entrera des données dans quelques colonnes (6 au
total) à partir de la colonne C. Dans la colonne B se trouvent les dates
correspondantes aux journées où sont entrées les données....

Si les dates dans ces cellules correspondent à un jour férié ou à une fin de
semaine, les cellules sont en rouge.

Alors, je voudrais que lorsque les données sont inscrites avec le userform
que celui-ci vérifie si la cellule suivante est en rouge... Si oui, elle
inscrit le même résultat dans la ligne suivante.... Voici un peu le code....

Dim Ligne As Long
With ActiveSheet()
Ligne = .[C65536].End(xlUp)(2).Row
.Range("C" & Ligne) = Me.TextBox1.Value

if .range("C" & Ligne).Offset( 1, -1).Interior.ColorIndex > 3 Then _
.range("C" & Ligne)=Me.Textbox1.Value
end if

next (afin de vérifier si la cellule suivante est aussi en
rouge....)

Auriez-vous une idée comment je pourrais écrire cela?

Merci

Denys






Avatar
michdenis
Bonjour Denys,

As-tu essayé quelque chose comme ceci :

'---------------------------------------
Dim Cellule As String
Dim A As Variant

Cellule = Range("A8").Address

A = Evaluate("OR(ISNUMBER(MATCH(" & Cellule & ",jf,0)),WEEKDAY(" & Cellule & ",2)>5)")
If Not IsError(A) Then
If A = True Then
Range("B8") = ""
Else
Range("B8") = Weekday(Range(Cellule))
End If
End If
'---------------------------------------


Salutations!



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

Merci, ça explique pourquoi..... J'en ai perdu du temps là-dessus...

La formule que j'utilise pour la mise en forme conditionnelle est la suivante:

=OR(ISNUMBER(MATCH(A8,jf,0)),WEEKDAY(A8,2) > 5)

En A8, j'ai la date correspondant à la journée où seront entrées les
données...
en B8, le jour de la semaine correspondant avec la MFC
Si la condition est vraie, (donc jour férié, samedi ou dimanche) alors la
cellule devient rouge.

jf = jours fériés, plage où sont entrés les jours fériés de l'année en cours.

Merci beaucoup

Denys


Bonjour Denys,

Pour récupérer si oui ou non une mise en forme conditionnelle est en application dans une cellule (donc la couleur rouge), tu dois
obligatoirement tester ta condition (formule) que tu utilises dans la mise en forme conditionnelle sur la dite cellule.

Il est impossible d'utiliser comme tu le fais la propriété "ColorIndex" pour vérifier la couleur d'un fond de cellule ou de la
couleur du texte de cette dernière si cette couleur provient d'une mise en forme conditionnelle.

Si besoin, dis-nous la formule que tu utilises dans ta mise en forme conditionnelle.


Salutations!




"Denys" a écrit dans le message de news:
Bonjour à tous,

Avec un userform, l'usager entrera des données dans quelques colonnes (6 au
total) à partir de la colonne C. Dans la colonne B se trouvent les dates
correspondantes aux journées où sont entrées les données....

Si les dates dans ces cellules correspondent à un jour férié ou à une fin de
semaine, les cellules sont en rouge.

Alors, je voudrais que lorsque les données sont inscrites avec le userform
que celui-ci vérifie si la cellule suivante est en rouge... Si oui, elle
inscrit le même résultat dans la ligne suivante.... Voici un peu le code....

Dim Ligne As Long
With ActiveSheet()
Ligne = .[C65536].End(xlUp)(2).Row
.Range("C" & Ligne) = Me.TextBox1.Value

if .range("C" & Ligne).Offset( 1, -1).Interior.ColorIndex > 3 Then _
.range("C" & Ligne)=Me.Textbox1.Value
end if

next (afin de vérifier si la cellule suivante est aussi en
rouge....)

Auriez-vous une idée comment je pourrais écrire cela?

Merci

Denys






Avatar
Denys
Bonjour Denis,

Merci beaucoup... Je vais devoir adapter un peu, car les dates du mois
commencent en A8 et peuvent descendre jusqu'en A37. Ce que je souhaite c'est
si la journée suivante est une fin de semaine ou un jour férié, alors les
valeurs du textbox doivent s'incrire dans la cellule de la colonne C
correspondante...

Supposons que la date en A10 est un vendredi, alors la cellule C10 prendra
la valeur du textbox1... ainsi que Samedi et Dimanche (donc C11 et C12). La
même chose en C13 si c'est un jour férié...

Mais tu viens de me donner un sapré bon coup de main....


Merci encore une fois...

Denys



Bonjour Denys,

As-tu essayé quelque chose comme ceci :

'---------------------------------------
Dim Cellule As String
Dim A As Variant

Cellule = Range("A8").Address

A = Evaluate("OR(ISNUMBER(MATCH(" & Cellule & ",jf,0)),WEEKDAY(" & Cellule & ",2)>5)")
If Not IsError(A) Then
If A = True Then
Range("B8") = ""
Else
Range("B8") = Weekday(Range(Cellule))
End If
End If
'---------------------------------------


Salutations!



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

Merci, ça explique pourquoi..... J'en ai perdu du temps là-dessus...

La formule que j'utilise pour la mise en forme conditionnelle est la suivante:

=OR(ISNUMBER(MATCH(A8,jf,0)),WEEKDAY(A8,2) > 5)

En A8, j'ai la date correspondant à la journée où seront entrées les
données...
en B8, le jour de la semaine correspondant avec la MFC
Si la condition est vraie, (donc jour férié, samedi ou dimanche) alors la
cellule devient rouge.

jf = jours fériés, plage où sont entrés les jours fériés de l'année en cours.

Merci beaucoup

Denys


Bonjour Denys,

Pour récupérer si oui ou non une mise en forme conditionnelle est en application dans une cellule (donc la couleur rouge), tu dois
obligatoirement tester ta condition (formule) que tu utilises dans la mise en forme conditionnelle sur la dite cellule.

Il est impossible d'utiliser comme tu le fais la propriété "ColorIndex" pour vérifier la couleur d'un fond de cellule ou de la
couleur du texte de cette dernière si cette couleur provient d'une mise en forme conditionnelle.

Si besoin, dis-nous la formule que tu utilises dans ta mise en forme conditionnelle.


Salutations!




"Denys" a écrit dans le message de news:
Bonjour à tous,

Avec un userform, l'usager entrera des données dans quelques colonnes (6 au
total) à partir de la colonne C. Dans la colonne B se trouvent les dates
correspondantes aux journées où sont entrées les données....

Si les dates dans ces cellules correspondent à un jour férié ou à une fin de
semaine, les cellules sont en rouge.

Alors, je voudrais que lorsque les données sont inscrites avec le userform
que celui-ci vérifie si la cellule suivante est en rouge... Si oui, elle
inscrit le même résultat dans la ligne suivante.... Voici un peu le code....

Dim Ligne As Long
With ActiveSheet()
Ligne = .[C65536].End(xlUp)(2).Row
.Range("C" & Ligne) = Me.TextBox1.Value

if .range("C" & Ligne).Offset( 1, -1).Interior.ColorIndex > > 3 Then _
.range("C" & Ligne)=Me.Textbox1.Value
end if

next (afin de vérifier si la cellule suivante est aussi en
rouge....)

Auriez-vous une idée comment je pourrais écrire cela?

Merci

Denys











Avatar
michdenis
Je n'ai pas vraiment saisi toute la mécanique du processus ... mais je dois quitter !


Salutations!


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

Merci beaucoup... Je vais devoir adapter un peu, car les dates du mois
commencent en A8 et peuvent descendre jusqu'en A37. Ce que je souhaite c'est
si la journée suivante est une fin de semaine ou un jour férié, alors les
valeurs du textbox doivent s'incrire dans la cellule de la colonne C
correspondante...

Supposons que la date en A10 est un vendredi, alors la cellule C10 prendra
la valeur du textbox1... ainsi que Samedi et Dimanche (donc C11 et C12). La
même chose en C13 si c'est un jour férié...

Mais tu viens de me donner un sapré bon coup de main....


Merci encore une fois...

Denys



Bonjour Denys,

As-tu essayé quelque chose comme ceci :

'---------------------------------------
Dim Cellule As String
Dim A As Variant

Cellule = Range("A8").Address

A = Evaluate("OR(ISNUMBER(MATCH(" & Cellule & ",jf,0)),WEEKDAY(" & Cellule & ",2)>5)")
If Not IsError(A) Then
If A = True Then
Range("B8") = ""
Else
Range("B8") = Weekday(Range(Cellule))
End If
End If
'---------------------------------------


Salutations!



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

Merci, ça explique pourquoi..... J'en ai perdu du temps là-dessus...

La formule que j'utilise pour la mise en forme conditionnelle est la suivante:

=OR(ISNUMBER(MATCH(A8,jf,0)),WEEKDAY(A8,2) > 5)

En A8, j'ai la date correspondant à la journée où seront entrées les
données...
en B8, le jour de la semaine correspondant avec la MFC
Si la condition est vraie, (donc jour férié, samedi ou dimanche) alors la
cellule devient rouge.

jf = jours fériés, plage où sont entrés les jours fériés de l'année en cours.

Merci beaucoup

Denys


Bonjour Denys,

Pour récupérer si oui ou non une mise en forme conditionnelle est en application dans une cellule (donc la couleur rouge), tu
dois
obligatoirement tester ta condition (formule) que tu utilises dans la mise en forme conditionnelle sur la dite cellule.

Il est impossible d'utiliser comme tu le fais la propriété "ColorIndex" pour vérifier la couleur d'un fond de cellule ou de la
couleur du texte de cette dernière si cette couleur provient d'une mise en forme conditionnelle.

Si besoin, dis-nous la formule que tu utilises dans ta mise en forme conditionnelle.


Salutations!




"Denys" a écrit dans le message de news:
Bonjour à tous,

Avec un userform, l'usager entrera des données dans quelques colonnes (6 au
total) à partir de la colonne C. Dans la colonne B se trouvent les dates
correspondantes aux journées où sont entrées les données....

Si les dates dans ces cellules correspondent à un jour férié ou à une fin de
semaine, les cellules sont en rouge.

Alors, je voudrais que lorsque les données sont inscrites avec le userform
que celui-ci vérifie si la cellule suivante est en rouge... Si oui, elle
inscrit le même résultat dans la ligne suivante.... Voici un peu le code....

Dim Ligne As Long
With ActiveSheet()
Ligne = .[C65536].End(xlUp)(2).Row
.Range("C" & Ligne) = Me.TextBox1.Value

if .range("C" & Ligne).Offset( 1, -1).Interior.ColorIndex > > 3 Then _
.range("C" & Ligne)=Me.Textbox1.Value
end if

next (afin de vérifier si la cellule suivante est aussi en
rouge....)

Auriez-vous une idée comment je pourrais écrire cela?

Merci

Denys