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

Formatage conditionel en VBA

13 réponses
Avatar
rthompson
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur d'une
cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas la
nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait de date
d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte gras en
jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex

10 réponses

1 2
Avatar
JPMonnier
Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec N1 ou
se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message de
news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur d'une
cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas la
nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait de
date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte gras
en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex









Avatar
JPMonnier
Excuse moi mais vire le Offset (qui ne sert à rien)
--
Cordialement

"JPMonnier" a écrit dans le message de
news:
Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec N1
ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message de
news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur d'une
cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas la
nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait de
date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte gras
en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex












Avatar
rthompson
Bonjour

Et merci

En effet elle fait exactement ce que j'ai demandé
Et je me rends compte ce matin que hier je devais être totalement "OUT"

Ce n'est pas du tout ce que je cherche à faire est ceci

Dans le p'tit bout de table ci-dessous
Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte gras jaune
sur fond rouge"

Tu vois, ce n'est pas du tout, mais la alors pas du tout du tout du tout ce
que je demandais hier soir


A B C D E
F G H I

Due Sale Cost Profit Name Offered
Cust Status Last action

24-07-08 3.300 ? 2.535 ? 765 ? fffff 0-07-08 der
Invoiced 24-06-08

21-02-08 4.279 ? 3.816 ? 463 ? ffffffff 9-07-08 jhnbg
Invoiced 22-01-08



Donc j'ai essayé d'adapter ton code
mais je me plante depuis ce matin

A mon avis mon cerveau exige des vacances

Je suppose qu'il faudra déclarer deux variables en début de code
une pour savoir si on est en INVOICED
et une pour savoir si l'échéance est dépassée

Et je coule, je coule, je coule



Si tu as une idée, sinon je recommencerai un autre fil

A bientôt

Et merci

Rex







"JPMonnier" a écrit dans le message de news:

Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec N1
ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message de
news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur d'une
cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas la
nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait de
date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte gras
en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex












Avatar
Modeste
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :

Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte
gras jaune sur fond rouge"



pourquoi une macro ???
un MEFC devrait te satisfaire
en A2
MEFC
Formula is : =AND(A2>TODAY(),H2="Invoiced")
Font : Gras Jaune
Motif : Rouge

utiliser le pinceau de recopie pour étendre à la plage souhaitée de la colonne A

--
--
@+
;o)))
Avatar
JPMonnier
Salut Rex
essaie la proc avec la distribution de ton message

Sub Coul_Condit()
For Each c In ActiveSheet.[H2:H100 ] ' zone des cellules à comparer avec N1
ouse trouve la date du jour
If c = "Invoiced" And c.Offset(0, -7) < (Range("N1") + 30) Then
c.Offset(0, -7).Interior.ColorIndex = 3 'couleur cellule
c.Offset(0, -7).Font.ColorIndex = 6 'couleur fonte
c.Offset(0, -7).Font.Bold = True 'cellule en gras
End If
Next
End Sub

A+
--
Cordialement

"rthompson" a écrit dans le message de
news:
Bonjour

Et merci

En effet elle fait exactement ce que j'ai demandé
Et je me rends compte ce matin que hier je devais être totalement "OUT"

Ce n'est pas du tout ce que je cherche à faire est ceci

Dans le p'tit bout de table ci-dessous
Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte gras
jaune sur fond rouge"

Tu vois, ce n'est pas du tout, mais la alors pas du tout du tout du tout
ce que je demandais hier soir


A B C D E F
G H I

Due Sale Cost Profit Name Offered
Cust Status Last action

24-07-08 3.300 ? 2.535 ? 765 ? fffff 0-07-08 der
Invoiced 24-06-08

21-02-08 4.279 ? 3.816 ? 463 ? ffffffff 9-07-08 jhnbg
Invoiced 22-01-08



Donc j'ai essayé d'adapter ton code
mais je me plante depuis ce matin

A mon avis mon cerveau exige des vacances

Je suppose qu'il faudra déclarer deux variables en début de code
une pour savoir si on est en INVOICED
et une pour savoir si l'échéance est dépassée

Et je coule, je coule, je coule



Si tu as une idée, sinon je recommencerai un autre fil

A bientôt

Et merci

Rex







"JPMonnier" a écrit dans le message de news:

Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec N1
ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message de
news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur
d'une cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas la
nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait de
date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte gras
en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex
















Avatar
rthompson
UNE PREMIERE !!!!!!!!!!!!!!!

Voilà notre Modeste qui se trompe
Et notre Teapot qui corrige !!!!!!!!!!!!!!!!

La valeur de A2 doit être plus petite et non plus grande hahahahahahahaha
ahahahahahahahahahaha

On vas en rire dans les chaumières Wallonnes pendant des lustres
hahahahahahaha

Une fois ce détail corriger, cela fonctionne
Mais à part cela, je ne suis pas sûr que cela va fonctionner comme il faut

Parce que, et je ne sais pas si tu t'en souviens,
Tout ceci fait partie de mon fichier mamouth
et les infos de cette feuille son mise à jour par macro
avec insertion de ligne etc

Faudra que j'essaie cela ce dimanche et je te tiens au courant

En parlant de courant, la foudre est tombé à moins de deux cents mètre de
mon domicile
Et patatras télévision, radio, PC, DVD, magnéto, etc TOUT EST MORT

Donc message important protégez vous ou retirez la prise

A bientôt et bon week end mon cher Modeste

Rex


"Modeste" a écrit dans le message de news:
eGe%
Bonsour® rthompson avec ferveur ;o))) vous nous disiez :

Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte
gras jaune sur fond rouge"



pourquoi une macro ???
un MEFC devrait te satisfaire
en A2
MEFC
Formula is : =AND(A2>TODAY(),H2="Invoiced")
Font : Gras Jaune
Motif : Rouge

utiliser le pinceau de recopie pour étendre à la plage souhaitée de la
colonne A

--
--
@+
;o)))
Avatar
rthompson
Bonjour

ET MERCI
Cela fonctionne

j'ai juste du supprimer ton +30,
puisque on compare la date d'échéance à celle d'aujourd'hui

Merci beaucoup

Il ne me reste plus qu'a essayer de l'intégrer dans ma macro

Donc j'ai une petite question
peut-on dans une même macro avoir deux fois For each c
ou doit-on mettre lors de la deuxième for each d

Petit exemple ci-dessous
Ou faudrait-il insérer ton bout de code
Ou alors je me fais un petit bouton
Ce qui est facile et non problemo for me


A bientôt

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub ToggleButton7_Click()
'ActiveSheet.Unprotect
DoEvents

Application.ScreenUpdating = False
For Each c In Range("H6:H185")
If c.Value = Cells(7, "L") Then c.EntireRow.Hidden = Cells(7, "M")
Next
Application.ScreenUpdating = True
ToggleButton7.Caption = Cells(7, "M").Offset(0, -1)
ToggleButton7.BackColor = IIf(Cells(7, "M"), vbRed, vbGreen)
Rows("10:28").Select
Selection.Interior.ColorIndex = xlNone

For Each c In Range("H10:H600") ' Ou alors par noms dynamique
"Listingstatus"
If IsError(c.Value) Then
c.EntireRow.Hidden = True
Else

If c.Value = "Invoice Requested" Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "H"))
.Interior.ColorIndex = 43
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
End With
End If
Next c
Range("H6").Select
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End Sub

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx





"JPMonnier" a écrit dans le message de news:
O%
Salut Rex
essaie la proc avec la distribution de ton message

Sub Coul_Condit()
For Each c In ActiveSheet.[H2:H100 ] ' zone des cellules à comparer avec
N1 ouse trouve la date du jour
If c = "Invoiced" And c.Offset(0, -7) < (Range("N1") + 30) Then
c.Offset(0, -7).Interior.ColorIndex = 3 'couleur cellule
c.Offset(0, -7).Font.ColorIndex = 6 'couleur fonte
c.Offset(0, -7).Font.Bold = True 'cellule en gras
End If
Next
End Sub

A+
--
Cordialement

"rthompson" a écrit dans le message de
news:
Bonjour

Et merci

En effet elle fait exactement ce que j'ai demandé
Et je me rends compte ce matin que hier je devais être totalement "OUT"

Ce n'est pas du tout ce que je cherche à faire est ceci

Dans le p'tit bout de table ci-dessous
Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte gras
jaune sur fond rouge"

Tu vois, ce n'est pas du tout, mais la alors pas du tout du tout du tout
ce que je demandais hier soir


A B C D E F G
H I

Due Sale Cost Profit Name Offered
Cust Status Last action

24-07-08 3.300 ? 2.535 ? 765 ? fffff 0-07-08 der
Invoiced 24-06-08

21-02-08 4.279 ? 3.816 ? 463 ? ffffffff 9-07-08
jhnbg Invoiced 22-01-08



Donc j'ai essayé d'adapter ton code
mais je me plante depuis ce matin

A mon avis mon cerveau exige des vacances

Je suppose qu'il faudra déclarer deux variables en début de code
une pour savoir si on est en INVOICED
et une pour savoir si l'échéance est dépassée

Et je coule, je coule, je coule



Si tu as une idée, sinon je recommencerai un autre fil

A bientôt

Et merci

Rex







"JPMonnier" a écrit dans le message de news:

Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec N1
ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message
de news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur
d'une cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas
la nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait de
date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte
gras en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex



















Avatar
JPMonnier
Désolé je n'ai pas la réponse, (A tester)
Je dois partir je regarderai plus tard
A ton service
@+
Jean-Pierre
--
Cordialement


"rthompson" a écrit dans le message de
news:
Bonjour

ET MERCI
Cela fonctionne

j'ai juste du supprimer ton +30,
puisque on compare la date d'échéance à celle d'aujourd'hui

Merci beaucoup

Il ne me reste plus qu'a essayer de l'intégrer dans ma macro

Donc j'ai une petite question
peut-on dans une même macro avoir deux fois For each c
ou doit-on mettre lors de la deuxième for each d

Petit exemple ci-dessous
Ou faudrait-il insérer ton bout de code
Ou alors je me fais un petit bouton
Ce qui est facile et non problemo for me


A bientôt

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub ToggleButton7_Click()
'ActiveSheet.Unprotect
DoEvents

Application.ScreenUpdating = False
For Each c In Range("H6:H185")
If c.Value = Cells(7, "L") Then c.EntireRow.Hidden = Cells(7, "M")
Next
Application.ScreenUpdating = True
ToggleButton7.Caption = Cells(7, "M").Offset(0, -1)
ToggleButton7.BackColor = IIf(Cells(7, "M"), vbRed, vbGreen)
Rows("10:28").Select
Selection.Interior.ColorIndex = xlNone

For Each c In Range("H10:H600") ' Ou alors par noms dynamique
"Listingstatus"
If IsError(c.Value) Then
c.EntireRow.Hidden = True
Else

If c.Value = "Invoice Requested" Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "H"))
.Interior.ColorIndex = 43
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
End With
End If
Next c
Range("H6").Select
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End Sub

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx





"JPMonnier" a écrit dans le message de news:
O%
Salut Rex
essaie la proc avec la distribution de ton message

Sub Coul_Condit()
For Each c In ActiveSheet.[H2:H100 ] ' zone des cellules à comparer avec
N1 ouse trouve la date du jour
If c = "Invoiced" And c.Offset(0, -7) < (Range("N1") + 30) Then
c.Offset(0, -7).Interior.ColorIndex = 3 'couleur cellule
c.Offset(0, -7).Font.ColorIndex = 6 'couleur fonte
c.Offset(0, -7).Font.Bold = True 'cellule en gras
End If
Next
End Sub

A+
--
Cordialement

"rthompson" a écrit dans le message de
news:
Bonjour

Et merci

En effet elle fait exactement ce que j'ai demandé
Et je me rends compte ce matin que hier je devais être totalement "OUT"

Ce n'est pas du tout ce que je cherche à faire est ceci

Dans le p'tit bout de table ci-dessous
Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte gras
jaune sur fond rouge"

Tu vois, ce n'est pas du tout, mais la alors pas du tout du tout du tout
ce que je demandais hier soir


A B C D E F G H
I

Due Sale Cost Profit Name Offered
Cust Status Last action

24-07-08 3.300 ? 2.535 ? 765 ? fffff 0-07-08
der Invoiced 24-06-08

21-02-08 4.279 ? 3.816 ? 463 ? ffffffff 9-07-08 jhnbg
Invoiced 22-01-08



Donc j'ai essayé d'adapter ton code
mais je me plante depuis ce matin

A mon avis mon cerveau exige des vacances

Je suppose qu'il faudra déclarer deux variables en début de code
une pour savoir si on est en INVOICED
et une pour savoir si l'échéance est dépassée

Et je coule, je coule, je coule



Si tu as une idée, sinon je recommencerai un autre fil

A bientôt

Et merci

Rex







"JPMonnier" a écrit dans le message de news:

Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec
N1 ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message
de news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur
d'une cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas
la nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait
de date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte
gras en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex























Avatar
Philippe.R
Bonjour,
A priori, deux boucles successives avec la même variable doivent pouvoir
tourner sans se mêler les pinceaux.
Nonobstant, dans la mesure où chacune de ces boucles a une utilité
différente, il est préférable AMHA d'utiliser deux variables différentes ;
question de lisibilité du code.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"rthompson" a écrit dans le message de
news:
Bonjour

ET MERCI
Cela fonctionne

j'ai juste du supprimer ton +30,
puisque on compare la date d'échéance à celle d'aujourd'hui

Merci beaucoup

Il ne me reste plus qu'a essayer de l'intégrer dans ma macro

Donc j'ai une petite question
peut-on dans une même macro avoir deux fois For each c
ou doit-on mettre lors de la deuxième for each d

Petit exemple ci-dessous
Ou faudrait-il insérer ton bout de code
Ou alors je me fais un petit bouton
Ce qui est facile et non problemo for me


A bientôt

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub ToggleButton7_Click()
'ActiveSheet.Unprotect
DoEvents

Application.ScreenUpdating = False
For Each c In Range("H6:H185")
If c.Value = Cells(7, "L") Then c.EntireRow.Hidden = Cells(7, "M")
Next
Application.ScreenUpdating = True
ToggleButton7.Caption = Cells(7, "M").Offset(0, -1)
ToggleButton7.BackColor = IIf(Cells(7, "M"), vbRed, vbGreen)
Rows("10:28").Select
Selection.Interior.ColorIndex = xlNone

For Each c In Range("H10:H600") ' Ou alors par noms dynamique
"Listingstatus"
If IsError(c.Value) Then
c.EntireRow.Hidden = True
Else

If c.Value = "Invoice Requested" Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "H"))
.Interior.ColorIndex = 43
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
End With
End If
Next c
Range("H6").Select
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End Sub

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx





"JPMonnier" a écrit dans le message de news:
O%
Salut Rex
essaie la proc avec la distribution de ton message

Sub Coul_Condit()
For Each c In ActiveSheet.[H2:H100 ] ' zone des cellules à comparer avec
N1 ouse trouve la date du jour
If c = "Invoiced" And c.Offset(0, -7) < (Range("N1") + 30) Then
c.Offset(0, -7).Interior.ColorIndex = 3 'couleur cellule
c.Offset(0, -7).Font.ColorIndex = 6 'couleur fonte
c.Offset(0, -7).Font.Bold = True 'cellule en gras
End If
Next
End Sub

A+
--
Cordialement

"rthompson" a écrit dans le message de
news:
Bonjour

Et merci

En effet elle fait exactement ce que j'ai demandé
Et je me rends compte ce matin que hier je devais être totalement "OUT"

Ce n'est pas du tout ce que je cherche à faire est ceci

Dans le p'tit bout de table ci-dessous
Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte gras
jaune sur fond rouge"

Tu vois, ce n'est pas du tout, mais la alors pas du tout du tout du tout
ce que je demandais hier soir


A B C D E F G H
I

Due Sale Cost Profit Name Offered
Cust Status Last action

24-07-08 3.300 ? 2.535 ? 765 ? fffff 0-07-08
der Invoiced 24-06-08

21-02-08 4.279 ? 3.816 ? 463 ? ffffffff 9-07-08 jhnbg
Invoiced 22-01-08



Donc j'ai essayé d'adapter ton code
mais je me plante depuis ce matin

A mon avis mon cerveau exige des vacances

Je suppose qu'il faudra déclarer deux variables en début de code
une pour savoir si on est en INVOICED
et une pour savoir si l'échéance est dépassée

Et je coule, je coule, je coule



Si tu as une idée, sinon je recommencerai un autre fil

A bientôt

Et merci

Rex







"JPMonnier" a écrit dans le message de news:

Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec
N1 ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message
de news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur
d'une cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas
la nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait
de date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte
gras en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex























Avatar
rthompson
Bonjour et merci pour cette info

Je dois filer maintenant, mais j'y regarde lundi et je te tiens au courant

Bon week-end

Rex


"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:

Bonjour,
A priori, deux boucles successives avec la même variable doivent pouvoir
tourner sans se mêler les pinceaux.
Nonobstant, dans la mesure où chacune de ces boucles a une utilité
différente, il est préférable AMHA d'utiliser deux variables différentes ;
question de lisibilité du code.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"rthompson" a écrit dans le message de
news:
Bonjour

ET MERCI
Cela fonctionne

j'ai juste du supprimer ton +30,
puisque on compare la date d'échéance à celle d'aujourd'hui

Merci beaucoup

Il ne me reste plus qu'a essayer de l'intégrer dans ma macro

Donc j'ai une petite question
peut-on dans une même macro avoir deux fois For each c
ou doit-on mettre lors de la deuxième for each d

Petit exemple ci-dessous
Ou faudrait-il insérer ton bout de code
Ou alors je me fais un petit bouton
Ce qui est facile et non problemo for me


A bientôt

Rex

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Private Sub ToggleButton7_Click()
'ActiveSheet.Unprotect
DoEvents

Application.ScreenUpdating = False
For Each c In Range("H6:H185")
If c.Value = Cells(7, "L") Then c.EntireRow.Hidden = Cells(7, "M")
Next
Application.ScreenUpdating = True
ToggleButton7.Caption = Cells(7, "M").Offset(0, -1)
ToggleButton7.BackColor = IIf(Cells(7, "M"), vbRed, vbGreen)
Rows("10:28").Select
Selection.Interior.ColorIndex = xlNone

For Each c In Range("H10:H600") ' Ou alors par noms dynamique
"Listingstatus"
If IsError(c.Value) Then
c.EntireRow.Hidden = True
Else

If c.Value = "Invoice Requested" Then
With Range(Cells(c.Row, "A"), Cells(c.Row, "H"))
.Interior.ColorIndex = 43
' .Pattern = xlSolid
' .PatternColorIndex = xlAutomatic
End With
End If
Next c
Range("H6").Select
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
End Sub

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx





"JPMonnier" a écrit dans le message de news:
O%
Salut Rex
essaie la proc avec la distribution de ton message

Sub Coul_Condit()
For Each c In ActiveSheet.[H2:H100 ] ' zone des cellules à comparer avec
N1 ouse trouve la date du jour
If c = "Invoiced" And c.Offset(0, -7) < (Range("N1") + 30) Then
c.Offset(0, -7).Interior.ColorIndex = 3 'couleur cellule
c.Offset(0, -7).Font.ColorIndex = 6 'couleur fonte
c.Offset(0, -7).Font.Bold = True 'cellule en gras
End If
Next
End Sub

A+
--
Cordialement

"rthompson" a écrit dans le message
de news:
Bonjour

Et merci

En effet elle fait exactement ce que j'ai demandé
Et je me rends compte ce matin que hier je devais être totalement "OUT"

Ce n'est pas du tout ce que je cherche à faire est ceci

Dans le p'tit bout de table ci-dessous
Si le statut de la colonne H est "Invoiced"
et que la date de la colonne A est plus grande que celle d'aujourd'hui
(qui se trouve en N1 ou on peut utiliser Today() dans la macro)
alors, la cellule correspondante de la colonne A doit être "Texte gras
jaune sur fond rouge"

Tu vois, ce n'est pas du tout, mais la alors pas du tout du tout du
tout ce que je demandais hier soir


A B C D E F G H I

Due Sale Cost Profit Name Offered
Cust Status Last action

24-07-08 3.300 ? 2.535 ? 765 ? fffff 0-07-08 der
Invoiced 24-06-08

21-02-08 4.279 ? 3.816 ? 463 ? ffffffff 9-07-08 jhnbg
Invoiced 22-01-08



Donc j'ai essayé d'adapter ton code
mais je me plante depuis ce matin

A mon avis mon cerveau exige des vacances

Je suppose qu'il faudra déclarer deux variables en début de code
une pour savoir si on est en INVOICED
et une pour savoir si l'échéance est dépassée

Et je coule, je coule, je coule



Si tu as une idée, sinon je recommencerai un autre fil

A bientôt

Et merci

Rex







"JPMonnier" a écrit dans le message de news:

Bonjour,
cette sub devrait répondre à tes besoins

Sub Coul_Condit()
For Each c In ActiveSheet.[a1:a12]' zone des cellules à comparer avec
N1 ou se trouve la date du jour
If c < (Range("N1") + 30) Then
c.Offset.Interior.ColorIndex = 3 'couleur cellule
c.Offset.Font.ColorIndex = 6 'couleur fonte
c.Offset.Font.Bold = True 'cellule en gras
End If
Next
End Sub


"rthompson" a écrit dans le message
de news:
Bonjour à toutes et tous

Voici mon petit (tout petit, petit, petit) pour cette fin de semaine

Ce petit bout de macro (merci le groupe) prends en compte la valeur
d'une cellule
et si cette valeur est "Invoiced" alors la ligne prends la couleur
choisie

If C.Value = "Invoiced" Then
With Range(Cells(C.Row, "A"), Cells(C.Row, "H"))
.Interior.ColorIndex = 46
End With
End If

Et cela fonctionne impeccable

Mais, parce qu'il en faut toujours un :-))))

Je voudrais EN PLUS qu'une cellule, celle de la colonne A pour ne pas
la nimmer
change de couleur si la cellule de la colonne I de la même ligne
est inférieure à la valeur de la cellule N1 (Today) + 30
( Les petits malins, et vous êtes nombreux ont compris qu'il s'agait
de date d'échéance!)

Pour le moment cela se fait par Formatage Conditionnel

La formule est =I38<$N$1+30

Si cette condition est remplie la cellule passe en rouge avec texte
gras en jaune

J'aimerais inclure cela dans la macro, est-ce possible????
Et qu'en plus elle glignote :-))))) (pas nécessaire)


Je ne serai pas devant mon PC avant demain (samedi) midi

D'ici la, si quelqu'un à une idée..........


D'avance merci et à bientôt

Et pour les habitués qui partent bientôt


BONNES VACANCES


Rex


























1 2