Test couleur cellule après mise en forme conditionnelle

  • Initiateur de la discussion Initiateur de la discussion fx83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fx83

Guest
Bonjour à tous,

j'aimerai compter dans une plage de cellule C8:N29 le nombre de cellules ayant la couleur rouge. Cette couleur rouge est donné par une mise en forme conditionnelle.

J'ai essayé avec du VBA mais si les cellules de la plage ne sont pas colorées avec l'outil de remplissage, cela ne détecte pas les couleurs ....

Voici le code VBA utilisé:

Code:
Public Function NbColor(Plage As Range, vCellcolor As Range) As Byte
Dim vColorTest As Long
Dim Compteur As Long
Dim vColorCell As Range

Compteur = 0
vColorTest = vCellcolor.Interior.Color
For Each vColorCell In Plage
If vColorCell.Interior.Color = vColorTest Then
Compteur = Compteur + 1
End If
Next vColorCell

NbColor = Compteur
End Function

Je mets ensuite dans une cellule W2 la couleur que je souhaite testée.
Et dans une autre cellule la formule suivante: =NbColor(C8:N29;W2)

Auriez-vous une idée pour tester la couleur d'une cellule donnée par une mise en forme conditionnelle?

Merci.
 
Re : Test couleur cellule après mise en forme conditionnelle

Il faudrait que lors de chaque année courante, la fonction comptabilise sur la feuille correspondante à l'année, le nombre de cellules rouges...
Mettre ce nombre en W1 de chaque feuille ou mieux qu'il s'affiche à l'ouverture du classeur: "vous avez x prestations de retard".

Merci de votre aide.

P.S: le comptage des cellules rouges est pour les feuilles Jean-Bouin 2007 à 2011 et Promenade 2007 à 2011.
 
Re : Test couleur cellule après mise en forme conditionnelle

bonjour fx83

teste cette macro (a mettre dans un module)

le resultat du compte des cellules devant etre rouge est affiché par msgbox

je pense que tu pourras adapter pour

appeler cette macro quand tu le souhaites

mettre les resultats ou ils te seront utiles

Code:
Sub test()
For n = 1 To Sheets.Count
If Left(Sheets(n).Name, 9) = "Promenade" Or Left(Sheets(n).Name, 10) = "Jean-Bouin" Then
If Left(Sheets(n).Name, 9) = "Promenade" Then
  colonne = "S"
Else
 If Right(Sheets(n).Name, 4) = "2007" Then colonne = "R"
 If Right(Sheets(n).Name, 4) = "2008" Then colonne = "S"
 If Right(Sheets(n).Name, 4) = "2009" Then colonne = "T"
 If Right(Sheets(n).Name, 4) = "2010" Then colonne = "U"
 If Right(Sheets(n).Name, 4) = "2011" Then colonne = "V"
End If
With Sheets(n)
Set plage = .Range("C8:N71")
For Each cel In plage
col = cel.Column - 2
lin = cel.Row
If cel.FormatConditions.Count <> 0 Then
  If cel.Value = "" And .Range("B5") > .Range(colonne & col) And .Range("O" & lin) = "" And .Range("P" & lin) = "" And .Range("Q" & lin) = "" Then
    compteur = compteur + 1
  End If
End If
Next cel
End With
MsgBox (Sheets(n).Name & " " & compteur)
End If
compteur = 0
Next n
End Sub
 
Re : Test couleur cellule après mise en forme conditionnelle

Super Pierre Jean, merci pour cette bonne base !!!
Ca marche impeccable à un détail près....

La macro teste toutes les feuilles de 2007 à 2011 et affiche tous les msgbox de 2007 à 2011.

Est-il possible d'afficher uniquement celui correspondant à l'année en cours?
 
Dernière modification par un modérateur:
Re : Test couleur cellule après mise en forme conditionnelle

Merci Staple ca marche impec....
Juste une dernière modification svp....

J'aimerai automatisé l'affichage en fonction de l'année...
Ex.: si on est en 2007, ca affiche les résultats des feuilles de 2007

Si on est en 2008, on affiche le résultat des feuilles de 2008.

Il faudrait faire un test avec une cellule contenant =aujourdhui() je pense...
 
Re : Test couleur cellule après mise en forme conditionnelle

bonjour fx83, le forum

Salut Staple ,

desolé ,hier je n'etais pas disponible

teste:

Code:
End With
[B]If Right(Sheets(n).Name, 4) =  Format(Date ,"yyyy") Then[/B] MsgBox (Sheets(n).Name & _
" " & compteur)
End If
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
665
W
Réponses
2
Affichages
239
Retour