Total des cellules en couleur conditionnelle

  • Initiateur de la discussion Virginie©
  • Date de début
V

Virginie©

Guest
Bonsoir le Forum,

Je tente de faire le total (non la somme) ligne par ligne des cellules colorée par une mise en forme conditionnelle mais ,mes compteurs reste à 0 ?. Je ne vois pas ou est mon erreur...

je suis partie d'une macro qui le fait sur des colonnes et qui fonctionne!!
donc à priori ce doit être possible sur des lignes enfin sûrement?


Merci de votre aide

Virginie
 

Pièces jointes

  • essaie_couleur_condi.zip
    10.2 KB · Affichages: 17
T

Tapsoba

Guest
Bonjour le Forum, bonjour Virginie.

Ta question sur la somme conditionnelle ( somme si couleur ... ) m'intéresse beaucoup.
Je constante avec joie que tu as déja une solution si les chiffres sont en colonne. Pourrais-tu me faire savoir comment écrire ce code ?
J'ai un niveau moyen en VBA.

En plus est-ce possible de cela avec simplement des formules.

Merci à tous pour l'aide.



Tapsoba
 
T

Tom_Tom

Guest
Bonjour,




J'ai tenté de balayer la zone et de tester les couleurs de remplisssage et comparer à aucun remplissage ( Code couleur -4142 ) afin de déduire les cellules contenant la couleur BLEU.

Il semble que la couleur BLEU ( Bien visible ) à l'écran a pour valeur -4142 par lecture : MsgBox Range("Z12").Interior.ColorIndex


C'est bizarre ?
 
V

Virginie

Guest
Bonjour ,

voici le code de la macro pour le total de cellules colorée par une MEFC

Option Explicit
Dim Compteur As Integer
Dim Cell As Range
Dim tot As Long
Dim var As Long
Dim C As Byte

Private Sub cmdCompteG_Click()
Application.ScreenUpdating = False

For Each Cell In Range("A1:G1")
C = Cell.Column
tot = 0
For Compteur = 4 To 4800
var = Application.WorksheetFunction.CountIf(Range("I" & Compteur & ":BT" & Compteur), Cells(Compteur, C))
If var > 0 Then
tot = tot + 1
End If
Next Compteur
Cell.Value = tot
Next Cell
Application.ScreenUpdating = True
End Sub

et pour le format : la formule est :=NB.SI($I5:$BT5;A5)>0

autrement par formule uniquement(pour la demande que j'ai formulé pour le calcul des lignes)
colle cette formule en AF12:=SOMMEPROD((NB.SI(U12:AD12;AG12:AM12)>0)*1)
il ne reste te plus qu'a mettre tes chiffres de AG à AM
voila

ps:je ne sais toujours pas si on peut le faire par Macro pour les lignes

bonne soirée

Virginie
 
M

marios

Guest
Option Explicit
Dim Compteur As Integer
Dim Cell As Range
Dim tot As Long
Dim var As Long
Dim C As Byte

Private Sub cmdCompte_Click()
Application.Volatile
Application.ScreenUpdating = False

For Each Cell In Range("AF12:AF67")
C = Cell.Row
tot = 0
For Compteur = 21 To 31
var = Application.WorksheetFunction.CountIf(Range("AG" & C & ":AM" & C), Cells(C, Compteur))
If var > 0 Then
tot = tot + 1
End If
Next Compteur
Cell.Value = tot
Next Cell
Application.ScreenUpdating = True
End Sub
 
V

Virginie©

Guest
Bonjour,

Merci beaucoup d'être revenu et d'avoir mis le code en ligne

ca fonctionne sans erreurs ,cependant je ne m'explique pas cette ligne
For Compteur = 21 To 31
alors si tu repasse tu pourra peut être m'expliquer ce détail .


Virginie
 

Discussions similaires

Réponses
12
Affichages
221

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine