Somme des cellules colorés

lalalolo -  
Raymond PENTIER Messages postés 58226 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?
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  1. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. 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
  4. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      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
      1. chtilou Messages postés 1704 Statut Membre 523 > Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention  
         
        sachant qu'une cellule = 0.25

        Comment faut t-il le prendre?


        0
  7. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     
    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