Couleurs format MFC non prises en compte dans une formule
Résolu
Dautomne
Messages postés
21
Statut
Membre
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
La formule (cellule M5) ci-après fonctionne parfaitement quand je remplis les cellules C5:L5 avec des couleurs VBA.
Mon souci, les cellules C5:L5 de mon fichier sont à priori remplies avec des couleurs au format MFC et ne semblent pas prises en compte dans la formule.
Je n'ai aucune notion vba, quelqu'un peut-il modifier ce code pour que les couleurs MFC soient prises en compte dans la formule ?
Par ailleurs, est-il possible de modifier le code suivant pour que la couleur reprise dans la cellule H5 soit au même format que dans les autres cellules.
Je vous joins mon fichier :
https://www.cjoint.com/c/JGEaakZls8O
Merci par avance pour votre aide.
Cordialement.
La formule (cellule M5) ci-après fonctionne parfaitement quand je remplis les cellules C5:L5 avec des couleurs VBA.
Sub TEST()
Dim rg As Range, cl As Range, colors As Scripting.Dictionary, col As Long, maxnb As Long, colmax As Long, koul
Set rg = Range("C5:L5")
Set colors = New Scripting.Dictionary
For Each cl In rg
col = cl.Interior.Color
Select Case col
Case vbWhite, 8421504:
Case Else:
If colors.Exists(col) Then
colors(col) = colors(col) + 1
Else
Call colors.Add(col, 1)
End If
End Select
Debug.Print col
Next cl
colmax = 0
maxnb = 0
For Each koul In colors.keys
If colors(koul) > maxnb Then
maxnb = colors(koul)
colmax = koul
End If
Next koul
Sheets("Synthèse résultats ctrl période").Range("M5").Interior.Color = colmax
End Sub
Mon souci, les cellules C5:L5 de mon fichier sont à priori remplies avec des couleurs au format MFC et ne semblent pas prises en compte dans la formule.
Je n'ai aucune notion vba, quelqu'un peut-il modifier ce code pour que les couleurs MFC soient prises en compte dans la formule ?
Par ailleurs, est-il possible de modifier le code suivant pour que la couleur reprise dans la cellule H5 soit au même format que dans les autres cellules.
Dim rg As Range, cl As Range, noui As Integer, nnon As Integer, couleur As Integer, ncel As Long
Set rg = Sheets("Fiche de contrôle").Range("$D$295:$D$297")
noui = 0
nnon = 0
ncel = rg.Count
For Each cl In rg
Select Case cl.Value
Case "NON":
nnon = nnon + 1
Case "OUI":
noui = noui + 1
End Select
Next cl
If noui = ncel Then
couleur = 10 'vert
Else
If nnon = ncel Then
couleur = 9 'rouge
Else
If noui + nnon = ncel Then
couleur = 46 'orange
Else
couleur = 48 'gris
End If
End If
End If
Sheets("Synthèse résultats ctrl période").Range("H39").Interior.ColorIndex = couleur
End Sub
Je vous joins mon fichier :
https://www.cjoint.com/c/JGEaakZls8O
Merci par avance pour votre aide.
Cordialement.
Configuration: Windows / Firefox 78.0
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
as-tu l'intention d'acquérir des notions vba? dans quel contexte fais-tu ce travail?
tu écris "La formule (cellule M5) ci-après fonctionne parfaitement", et il n'y a aucune formule.
tu pourrais écrire "la routine TEST fonctionne parfaitement". ou utiliser "code VBA" au lieu de formule.
plus tu es clair, mieux nous pouvons t'aider.
en ce qui concerne ton premier soucis, moi j'essaierais en modifiant ainsi la ligne 6:col = cl.DisplayFormat.Interior.Color
je n'ai pas testé.
en ce qui concerne ton second soucis, "la couleur reprise dans la cellule H5 soit au même format que dans les autres cellules":
- les couleurs n'ont pas de format, que veux-tu obtenir?
- quelles autres cellules?
- donne peut-être un exemple, éventuellement en utilisant le contenu du fichier que tu partages, cela t'aidera à être concret-
Bonjour yg_be,
Merci beaucoup :-) mon souci 1 est à priori réglé.
Concernant le souci 2 :
Les codes couleurs utilisés pour la cellule H5 sont différents de ceux des autres cellules C5:G5/I5:L5. Je voudrai simplement modifié le code couleur utilisé pour cette cellule afin d'obtenir un remplissage uniforme de l'ensemble des cases
Voici les codes couleurs qui ont été utilisés dans les autres cellules (C5:G5/I5:L5):
Vert :
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
Rouge foncé :
.PatternColorIndex = xlAutomatic
.Color = 192
.TintAndShade = 0
Orange foncé :
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = -0.249946592608417
Enfin Gris :
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.349986266670736
Fichier exemple :
https://www.cjoint.com/c/JGEaakZls8O
Les macros présentent dans le module 1 alimentent les cellules C5:D5.
Cordialement.
-