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

couleur de case pour chiffre le plus grand

6 réponses
Avatar
Chrisdolby
Bonjour,

tout d'abord un grand merci à Jacky et JB avec qui j'ai appris et compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris

6 réponses

Avatar
Daniel
Bonjour.
Il y a peut-être plus simple, pour la première ligne :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
.Interior.ColorIndex = 3

Pour la seconde, remplace Row par Row+2.
Cordialement.
Daniel
"Chrisdolby" a écrit dans le message
de news:
Bonjour,

tout d'abord un grand merci à Jacky et JB avec qui j'ai appris et compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris



Avatar
Daniel
Problème de copier / coller :

Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Min(Range(Cells(Target.Row, 4), _
Cells(Target.Row, 21))), Range(Cells(Target.Row, 4), Cells(Target.Row, 21)),
0)) _
.Interior.ColorIndex = 3

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

Bonjour.
Il y a peut-être plus simple, pour la première ligne :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
.Interior.ColorIndex = 3

Pour la seconde, remplace Row par Row+2.
Cordialement.
Daniel
"Chrisdolby" a écrit dans le
message de news:
Bonjour,

tout d'abord un grand merci à Jacky et JB avec qui j'ai appris et compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris







Avatar
Daniel
Re oups :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
.Interior.ColorIndex = 3

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

Bonjour.
Il y a peut-être plus simple, pour la première ligne :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
.Interior.ColorIndex = 3

Pour la seconde, remplace Row par Row+2.
Cordialement.
Daniel
"Chrisdolby" a écrit dans le
message de news:
Bonjour,

tout d'abord un grand merci à Jacky et JB avec qui j'ai appris et compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris







Avatar
Chrisdolby
Bonjour,

il semblerait que lorsqu'il y a plusieurs chiffres égaux les plus grands, la
formule n'en considère qu'1, celui le plus proche de la gauche.
Pouvez-vous m'aider à résoudre ce problème?

Merci pour votre intérêt!

Chris


Re oups :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
..Interior.ColorIndex = 3

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

Bonjour.
Il y a peut-être plus simple, pour la première ligne :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
.Interior.ColorIndex = 3

Pour la seconde, remplace Row par Row+2.
Cordialement.
Daniel
"Chrisdolby" a écrit dans le
message de news:
Bonjour,

tout d'abord un grand merci à Jacky et JB avec qui j'ai appris et compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris












Avatar
JB
Bonjour,


Solution VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
Set ligne = Cells(Target.Row, 4).Resize(1, 18)
If Application.CountA(ligne) > 0 Then
For Each c In ligne
c.Interior.ColorIndex = IIf(c = Application.Max(ligne), 3,
xlNone)
Next c
Else
ligne.Interior.ColorIndex = xlNone
End If
End Sub

Solution MFC:

-Sélectionner le champ D1:Uxx
-Format/mise en forme conditionnelle
=ET(D1<>"";D1=MAX($D1:$U1))

http://cjoint.com/?cvirplZ7Dj

JB

On 20 fév, 16:47, Chrisdolby
wrote:
Bonjour,

tout d'abord un grand merci à Jacky etJBavec qui j'ai appris et compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris


Avatar
Daniel
Bonjour.
Essaie :

Dim Plage As Range, Maxi As Double
Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Maxi = WorksheetFunction.Max(Plage)
For Each cell In Plage
If cell = Maxi Then cell.Interior.ColorIndex = 3
Next

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

il semblerait que lorsqu'il y a plusieurs chiffres égaux les plus grands,
la
formule n'en considère qu'1, celui le plus proche de la gauche.
Pouvez-vous m'aider à résoudre ce problème?

Merci pour votre intérêt!

Chris


Re oups :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
..Interior.ColorIndex = 3

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

Bonjour.
Il y a peut-être plus simple, pour la première ligne :

Set Plage = Range(Cells(Target.Row, 4), Cells(Target.Row, 21))
Cells(Target.Row, 3).Offset(0,
Application.Match(WorksheetFunction.Max(Plage), Plage, 0)) _
.Interior.ColorIndex = 3

Pour la seconde, remplace Row par Row+2.
Cordialement.
Daniel
"Chrisdolby" a écrit dans le
message de news:
Bonjour,

tout d'abord un grand merci à Jacky et JB avec qui j'ai appris et
compris
beaucoup de choses dans le fonctionnement et langage VBA.
Il me reste toutefois une question pour en finir avec ce projet:
sur les lignes suivantes je souhaite mettre le ou les chiffres les
plus
grands sur fond rouge:
m3 = target.address
For i = 4 to 21
Cells(Target.Row, i) voilà la première ligne concernée
Cells(Target.Row + 2, i) voilà la deuxième ligne concernée

merci encore pour votre aide!

Chris