Somme des cellules colorés

lalalolo -  
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'aimerais dans un planning connaitre le nombre de cellules colorée, sachant qu'une cellule = 0.25 pour connaitre le nombre d'heures faites par jour. Je cherche depuis un moment je n'est pas touver encore, il faut dire que je débute.
Ou si non! si ma cellule est colorée alors ma somme est 0.25.Est possible?

6 réponses

Canard007 Messages postés 5936 Statut Contributeur 215
 
salut ,

voila un exemple qui te permet de coloriser une cellule en fonction du contenu.
Sub ColorJour()

Dim cell As Range
For Each cell In Range("C:C")
Select Case cell.Value
Case Is = "Lundi"
cell.Interior.ColorIndex = 0
Case Is = "Mardi"
cell.Interior.ColorIndex = 3
Case Is = "Mercredi"
cell.Interior.ColorIndex = 4
Case Is = "Jeudi"
cell.Interior.ColorIndex = 5
Case Is = "Vendredi"
cell.Interior.ColorIndex = 6
Case Is = "Samedi"
cell.Interior.ColorIndex = 7
Case Is = "Dimanche"
cell.Interior.ColorIndex = 8
End Select
Next
End Sub

tu n'a plus qu'a readapter ton compte pour faire le contraire.
Je te cnseil d'utiliser plutot des if dans ton cas.
if( cell.Interior.ColorIndex = 8 )
je compte

0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonsoir,

voici une fonction à coller dans un module :
Function nbFondCouleur(plage As Range, modele As Range)
    Dim cel As Range, tot As Long
    Application.Volatile
    For Each cel In plage
        tot = tot + (cel.Interior.ColorIndex = modele.Interior.ColorIndex)
    Next cel
    nbFondCouleur = -tot
End Function

Ensuite utiliser la fonction personnalisée en désignant la plage où compter les cellules colorées, et une cellule modèle de la couleur à tester.
=nbFondCouleur(A1:A8;A1) compte les cellules de la plage A1:A8 dont le fond est de la couleur de la cellule A1.

Par contre un petit soucis, malgré le 'application.volatile' la fonction ne se réévalue pas si le nombre de cellules colorées change, même en forçant un recalcul avec F9... Il faut aller dans la cellule et revalider la fonction.
Peut-être qu'un lecteur aura une solution à ça.
eric
0
chtilou Messages postés 1704 Statut Membre 523
 
Bonsoir.

sachant qu'une cellule = 0.25

Si tu recherches une valeur supérieure à regarde avec ce code.

Sub SupA()
Dim i As Integer
i = 0
Range("a1:a50").Select 'selectionne la plage à vérifier
For Each Cel In Selection
If Cel.Value > Cells(1, 6).Value Then 'si valeur sup à F1
i = i + 1
Cells(2, 6).Value = i 'nb de cellules sup à F1 en F2
End If
Next
End Sub

Ou celui-ci:

Sub SupVal()
Dim i As Integer
i = 0
Range("a1:a50").Select 'selectionne la plage à vérifier
For Each Cel In Selection
If Cel.Value > 0.25 Then 'si valeur sup à 0.25
i = i + 1
Cells(1, 2).Value = i 'nb de cellules sup à 0.25 en A2
End If
Next
End Sub

Cordialement.
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
Pour quelqu'un qui débute, tu as de quoi t'amuser, avec les 3 macros qui te sont proposées !
Pourquoi ne pas utiliser le format "Mise en forme conditionnelle",comme je le propose dans l'astuce Créer rapidement un planning de congés simple ? Tu remplaces la lettre c de mon exemple par le chiffre 1, et à la fin de ta ligne tu fais la somme que tu divises par 4 pour obtenir la durée en heures (chaque case représentant un quart d'heure).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour canard, chtilou et raymond,

Pour moi il ne veut pas colorer des cellules mais compter les cellules colorées.
C'est moi qui ne comprend rien à ce qu'il veut ou quoi ? :-s

Bon we à tous
eric
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
Oui, eriiic, tu as bien compris sa demande.
Je lui propose donc de saisir le chiffre 1 dans les cellules à colorier, ce qui permet :
1) de les colorer automatiquement grâce à la mise en forme conditionnelle
2) de compter ces cellules colorées en faisant une simple addition
3) de calculer la durée en divisant ce nombre par 4 (multiplication par 0,25)
Je trouve que c'est trop simple pour justifier le recours à des macros !
Amicalement.
0
chtilou Messages postés 1704 Statut Membre 523 > Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention  
 
sachant qu'une cellule = 0.25

Comment faut t-il le prendre?


0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 402
 
J'ai supposé que chaque case représente le quart d'une journée de travail (pour gérer les demi-journées de travail, le travail à temps partiel, les retards ou absences) et que 4 cases coloriées représentent une journée de travail complète.
0