Mise en forme conditionnelle regroupé en VBA
Bonjour à tous petite question Mise en forme conditionnelle
J'aimerais savoir s'il y avait une solution plus simple pour faire de la mise en forme conditionelle en regroupant les "groupes"
Top 1 = 10 pts
Top 2 = 5 pts
Top 3/Top 5 = 4 pts
Top 6/Top 10 = 3 pts
Top 11/20 = 2 pts
Top 21/70 = 1 pt
Top 71/100 = 0 pt
En gros définir une couleur pour le Top 1, une sur le Top 2.
Une couleur pour Top 3, Top 4 et Top 5
Une autre couleur pour Top 6, Top 7, Top 8, Top 9, Top 10
Voici mon code à simplifier si possible
Range(Cells(ligne, nb_partie + 7), Cells(nb_joueurs + 2, nb_partie * 2 + 7)).Select
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 1", TextOperator:=xlContains
Selection.FormatConditions(1).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 2", TextOperator:=xlContains
Selection.FormatConditions(2).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 3", TextOperator:=xlContains
Selection.FormatConditions(3).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 4", TextOperator:=xlContains
Selection.FormatConditions(4).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 5", TextOperator:=xlContains
Selection.FormatConditions(5).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 6", TextOperator:=xlContains
Selection.FormatConditions(6).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 7", TextOperator:=xlContains
Selection.FormatConditions(7).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 8", TextOperator:=xlContains
Selection.FormatConditions(8).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 9", TextOperator:=xlContains
Selection.FormatConditions(9).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 10", TextOperator:=xlContains
Selection.FormatConditions(10).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 11", TextOperator:=xlContains
Selection.FormatConditions(11).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 12", TextOperator:=xlContains
Selection.FormatConditions(12).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 13", TextOperator:=xlContains
Selection.FormatConditions(13).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 14", TextOperator:=xlContains
Selection.FormatConditions(14).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 15", TextOperator:=xlContains
Selection.FormatConditions(15).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 16", TextOperator:=xlContains
Selection.FormatConditions(16).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 17", TextOperator:=xlContains
Selection.FormatConditions(17).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 18", TextOperator:=xlContains
Selection.FormatConditions(18).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 19", TextOperator:=xlContains
Selection.FormatConditions(19).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 20", TextOperator:=xlContains
Selection.FormatConditions(20).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 21", TextOperator:=xlContains
Selection.FormatConditions(21).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 22", TextOperator:=xlContains
Selection.FormatConditions(22).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 23", TextOperator:=xlContains
Selection.FormatConditions(23).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 24", TextOperator:=xlContains
Selection.FormatConditions(24).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 25", TextOperator:=xlContains
Selection.FormatConditions(25).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 26", TextOperator:=xlContains
Selection.FormatConditions(26).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 27", TextOperator:=xlContains
Selection.FormatConditions(27).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 28", TextOperator:=xlContains
Selection.FormatConditions(28).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 29", TextOperator:=xlContains
Selection.FormatConditions(29).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 30", TextOperator:=xlContains
Selection.FormatConditions(30).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 31", TextOperator:=xlContains
Selection.FormatConditions(31).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 32", TextOperator:=xlContains
Selection.FormatConditions(32).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 33", TextOperator:=xlContains
Selection.FormatConditions(33).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 34", TextOperator:=xlContains
Selection.FormatConditions(34).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 35", TextOperator:=xlContains
Selection.FormatConditions(35).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 36", TextOperator:=xlContains
Selection.FormatConditions(36).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 37", TextOperator:=xlContains
Selection.FormatConditions(37).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 38", TextOperator:=xlContains
Selection.FormatConditions(38).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 39", TextOperator:=xlContains
Selection.FormatConditions(39).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 40", TextOperator:=xlContains
Selection.FormatConditions(40).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 41", TextOperator:=xlContains
Selection.FormatConditions(41).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 42", TextOperator:=xlContains
Selection.FormatConditions(42).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 43", TextOperator:=xlContains
Selection.FormatConditions(43).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 44", TextOperator:=xlContains
Selection.FormatConditions(44).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 45", TextOperator:=xlContains
Selection.FormatConditions(45).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 46", TextOperator:=xlContains
Selection.FormatConditions(46).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 47", TextOperator:=xlContains
Selection.FormatConditions(47).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 48", TextOperator:=xlContains
Selection.FormatConditions(48).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 49", TextOperator:=xlContains
Selection.FormatConditions(49).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 50", TextOperator:=xlContains
Selection.FormatConditions(50).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 51", TextOperator:=xlContains
Selection.FormatConditions(51).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 52", TextOperator:=xlContains
Selection.FormatConditions(52).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 53", TextOperator:=xlContains
Selection.FormatConditions(53).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 54", TextOperator:=xlContains
Selection.FormatConditions(54).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 55", TextOperator:=xlContains
Selection.FormatConditions(55).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 56", TextOperator:=xlContains
Selection.FormatConditions(56).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 57", TextOperator:=xlContains
Selection.FormatConditions(57).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 58", TextOperator:=xlContains
Selection.FormatConditions(58).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 59", TextOperator:=xlContains
Selection.FormatConditions(59).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 60", TextOperator:=xlContains
Selection.FormatConditions(60).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 61", TextOperator:=xlContains
Selection.FormatConditions(61).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 62", TextOperator:=xlContains
Selection.FormatConditions(62).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 63", TextOperator:=xlContains
Selection.FormatConditions(63).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 64", TextOperator:=xlContains
Selection.FormatConditions(64).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 65", TextOperator:=xlContains
Selection.FormatConditions(65).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 66", TextOperator:=xlContains
Selection.FormatConditions(66).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 67", TextOperator:=xlContains
Selection.FormatConditions(67).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 68", TextOperator:=xlContains
Selection.FormatConditions(68).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 69", TextOperator:=xlContains
Selection.FormatConditions(69).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 70", TextOperator:=xlContains
Selection.FormatConditions(70).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 71", TextOperator:=xlContains
Selection.FormatConditions(71).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 72", TextOperator:=xlContains
Selection.FormatConditions(72).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 73", TextOperator:=xlContains
Selection.FormatConditions(73).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 74", TextOperator:=xlContains
Selection.FormatConditions(74).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 75", TextOperator:=xlContains
Selection.FormatConditions(75).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 76", TextOperator:=xlContains
Selection.FormatConditions(76).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 77", TextOperator:=xlContains
Selection.FormatConditions(77).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 78", TextOperator:=xlContains
Selection.FormatConditions(78).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 79", TextOperator:=xlContains
Selection.FormatConditions(79).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 80", TextOperator:=xlContains
Selection.FormatConditions(80).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 81", TextOperator:=xlContains
Selection.FormatConditions(81).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 82", TextOperator:=xlContains
Selection.FormatConditions(82).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 83", TextOperator:=xlContains
Selection.FormatConditions(83).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 84", TextOperator:=xlContains
Selection.FormatConditions(84).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 85", TextOperator:=xlContains
Selection.FormatConditions(85).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 86", TextOperator:=xlContains
Selection.FormatConditions(86).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 87", TextOperator:=xlContains
Selection.FormatConditions(87).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 88", TextOperator:=xlContains
Selection.FormatConditions(88).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 89", TextOperator:=xlContains
Selection.FormatConditions(89).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 90", TextOperator:=xlContains
Selection.FormatConditions(90).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 91", TextOperator:=xlContains
Selection.FormatConditions(91).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 92", TextOperator:=xlContains
Selection.FormatConditions(92).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 93", TextOperator:=xlContains
Selection.FormatConditions(93).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 94", TextOperator:=xlContains
Selection.FormatConditions(94).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 95", TextOperator:=xlContains
Selection.FormatConditions(95).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 96", TextOperator:=xlContains
Selection.FormatConditions(96).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 97", TextOperator:=xlContains
Selection.FormatConditions(97).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 98", TextOperator:=xlContains
Selection.FormatConditions(98).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 99", TextOperator:=xlContains
Selection.FormatConditions(99).Interior.ColorIndex = 4
Selection.FormatConditions.Add Type:=xlTextString, String:="Top 100", TextOperator:=xlContains
Selection.FormatConditions(100).Interior.ColorIndex = 4De plus il faut que je refasse des mises en forme conditionelle pour les Duos, Trio et Squad
Donc je donne au cas où :
Duo
2 point par kill
Top 1 = 10 pts
Top 2 = 5 pts
Top 3/Top 5 = 4 pts
Top 6/Top 10 = 3 pts
Top 11/20 = 2 pts
Top 21/34 = 1 pt
Top 35/50 = 0
Trio
1 point par kill
Top 1 = 10 pts
Top 2 = 5 pts
Top 3/Top 5 = 4 pts
Top 6/Top 9 = 3 pts
Top 10/14 = 2 pts
Top 15/24 = 1 pt
Top 25/33 = 0 pt
Squad
0,5 point par kill
Top 1 = 10 pts
Top 2 = 5 pts
Top 3/Top 4 = 4 pts
Top 5/Top 8 = 3 pts
Top 9/13 = 2 pts
Top 14/19 = 1 pt
Top 20/25 = 0 pt
Merci
Bonjour,
Ce serait plus simple avec des conditions du type plus petit que ou plus grand que qui peuvent s'appliquer au texte aussi !
On peut aussi faire une sub pour simplifier la macro globale.
On ne peut aller plus loin que s'il y a un fichier.
Bonjour,
merci de ta réponse, auras tu un exemple de tes deux moyens ?
Car je fais du VBA mais j'ai jamais essayé la mise ne forme conditionnelle.
Merci
On ne peut aller plus loin que s'il y a un fichier.
auras tu un exemple de tes deux moyens ?
On tourne en rond...
Sub MFC(plage As Range, critere As String, couleur)
With plage
.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=""" & critere & """"
.FormatConditions(plage.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.ColorIndex = couleur
.FormatConditions(1).StopIfTrue = False
End With
End Sub
Sub test()
Cells.FormatConditions.Delete
MFC Columns(1), "Top 00", 33
MFC Columns(1), "Top 01", 34
MFC Columns(1), "Top 02", 35
MFC Columns(1), "Top 03", 36
MFC Columns(1), "Top 06", 37
MFC Columns(1), "Top 11", 38
MFC Columns(1), "Top 21", 39
MFC Columns(1), "Top 71", 40
End Sub
Ah pardon je n'avais pas compris le fichier j'ai complétement oublier de l'ajouter cette nuit
Je pensais que tu parlé d'un fichier externe
Le voici, tu as toutes mes macros dessus donc tu peux te générer des exemples si tu veux.
Mais je vais regarder ton exemple
Merci
Un peu plus paramétré ... je te laisse intégrer à ton fichier puisque tu connais mieux que moi la fonctionnalité de tes macros.
Sub MFC(plage As Range, critere As String, couleur)
With plage
.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=""" & critere & """"
.FormatConditions(plage.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.ColorIndex = couleur
.FormatConditions(1).StopIfTrue = False
End With
End Sub
Sub test()
Cells.FormatConditions.Delete
With Sheets("param")
For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
MFC Columns(1), .Range("A" & i), .Range("C" & i)
Next
End With
End SubPour faire du >= Top 1 j'ai dû ajouter un 0 devant le 1 pour que Top 11 ne se trouve pas devant Top 2
Il y a moyen de contourner cela en ne mettant que des chiffres avec un format de type "Top "0
Bonjour,
Merci à toi pour ton programme mais j'ai du mal à comprendre ton programme.
Je ne comprends pas le MFC Columns(1) et comment on définit la plage ou on doit appliquer les MFC ?
De plus pour mon programme soit je fais comme ton exemple ou je regarde une seule ligne donc j'applique soit partie de jeu par partie ou je fais un Range() en sélectionnant toutes mes cellules et j'applique la MFC.
Je t'ai mis un exemple sur ce fichier, imagine que les colonnes L,M,N,O et P seront remplies jusqu'à la ligne 102.
Mais attention il peux y avoir L,M et N mais une infinité aussi (pas en réalité).
Et dernière question est-il possible de mettre une MFC sur ma feuille dès sa création et de rajouter les valeurs par la suite car je sais pas si tu as remarqués mais ce sont des fonctions qui renvoient le "Top ..".
=SIERREUR(INDEX(Result_ResultatSOLO17052020;SIERREUR(EQUIV($B6;GAME1_ResultatSOLO17052020;0);EQUIV($C6;GAME1_ResultatSOLO17052020;0));1);"")Exemple feuille "Tournoi ... " cellule L6
Merci
Sub MFC(plage As Range, critere As String, couleur)
With plage
.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=""" & critere & """"
.FormatConditions(plage.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).Interior.ColorIndex = couleur
.FormatConditions(1).StopIfTrue = False
End With
End Sub
Sub test()
Sheets("Tournoi SOLO 17-05-2020").Cells.FormatConditions.Delete
With Sheets("params")
For i = 3 To .Range("A" & Rows.Count).End(xlUp).Row
MFC Sheets("Tournoi SOLO 17-05-2020").Range("L2:P102"), .Range("A" & i), .Range("C" & i)
Next
End With
End SubJ'ai changé param en params et for i=2 en for i=3 puisque les paramètres débutent ligne 3
J'ai défini la plage comme suit
Sheets("Tournoi SOLO 17-05-2020").Range("L2:P102")
in fine cela revient à effacer la macro qui a mis en place la MFC et laisser en l'état maintenant. E tous cas je l'i appliquée sur la totalité des cellules L2:P102Et dernière question est-il possible de mettre une MFC sur ma feuille dès sa création et de rajouter les valeurs par la suite car je sais pas si tu as remarqués mais ce sont des fonctions qui renvoient le "Top ..".
Bah super merci, je regarde tout ça
PS : Il n'y a pas que 85 décimale dans Pi, j'ai un fichier Txt avec 100 millions si tu veux
On peut y trouver sa date de naissance ...
Heureusement que tu me le dit j'avais oublié, par contre pour le TOP 100 j'ai un problème il me prends pas la bonne couleur
Parce que en effet tu passes à 3 chiffres, et donc "Top 100" est inférieur à "Top 20" par exemple !
- Soit tu passes en numérique avec comme format
"Top "0et ce sera ok
- Soit tu ajoutes un 0 devant toutes les valeurs de 1 à 99 ... Top 001 à Top 099
Je vais pas m’embêter il n'y aura ce cas dans de très rares occaz donc je vais faire au plus simple