Comptage cases colorées en 1 et 0,5 en fonction du jour

Bonjour à tous,

J'aurais besoin de votre aide sur l'écriture d'une fonction VBA : je voudrais calculer des cases colorées et tout marchait très bien jusqu'à ce que je veuille rajouter une condition. En effet, mon calcul sert à compter des jours travaillés mais il y a des samedis qui ne comptent que pour des demis journées, aussi j'ai voulu compter les cellules en 0,5 quand on avait un "s" dans la ligne du jour mais ma formule ne marche pas et je ne comprend pas d'où vient mon erreur.

Je vous copie ma formule :

Function CountCcolor(range_data As Range, criteria As Range) As Long

Dim datax As Range

Dim xcolor As Long

xcolor = criteria.Interior.ColorIndex

For Each datax In range_data

If datax.Interior.ColorIndex = xcolor And UCase(Left(Range("A3:AL3"), 1)) = "s" Then

CountCcolor = CountCcolor + 0.5

ElseIf datax.Interior.ColorIndex = xcolor Then

CountCcolor = CountCcolor + 1

End If

Next datax

End Function

Merci beaucoup d'avance pour votre aide !

Bonjour,

à tester,

Function CountCcolor(range_data As Range, criteria As Range) As Long
Dim datax As Range
Dim xcolor As Long
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor And UCase(Left(datax, 1)) = "s" Then                'modification ici
CountCcolor = CountCcolor + 0.5
ElseIf datax.Interior.ColorIndex = xcolor Then
CountCcolor = CountCcolor + 1
End If
Next datax
End Function

Bonjour à tous,

avec Ucase tu transformes en majuscule.

Ca ne sera jamais = "s" mais ="S", ou bien utiliser LCase

eric

Merci beaucoup pour vos réponses.

J'ai testé vos 2 solutions mais malheureusement je n'arrive toujours pas à compter en demi journées.

La modification (UCase(Left(datax, 1)) = "s" ) m'a repermis d'avoir des valeurs pour les sommes (alors que ça ne me mettait plus que des messages d'erreurs avec mon code depuis que j'avais rajouté ma condition ) mais les samedis sont toujours comptés en 1 et non pas en 0,5, même en passant au Lcase.

Que pourrais-je faire pour rattraper le coup ?

Bonjour,

comme on ne sait pas ce contiennent exactement tes cellules, il faut déposer un fichier qu'on y voit clair.

Par exemple si ta cellule est une date au format "jjjj", tu y lis peut-être samedi, mais son contenu est et reste un nombre.

Et il faut essayer de comprendre ce que tu fais, le hasard a peu sa place en programmation.

Même si en ajoutant une erreur tu obtiens un résultat, ça ne rend pas l'ensemble correct pour autant.

Ucase fournit une majuscule, qui ne sera jamais égale à une minuscule. C'est non négociable

eric

Oui c'est pas faux !

Mon fichier est un planning avec un mois par feuillet et les couleurs correspondent aux employés et pour nous c'est important d'avoir un total de jour mensuel et à l'année.

Function CountCcolor(range_data As Range, criteria As Range) As Double
    Dim datax As Range
    Dim xcolor As Long
    Application.Volatile
    xcolor = criteria.Interior.ColorIndex
    For Each datax In range_data
        If datax.Interior.ColorIndex = xcolor And LCase(Cells(3, datax.Column)) = "s" Then
            CountCcolor = CountCcolor + 0.5
        ElseIf datax.Interior.ColorIndex = xcolor Then
            CountCcolor = CountCcolor + 1
        End If
    Next datax
End Function

Tu avais mis ta fonction As Long (entier), difficile d'avoir des ,5 dans ce cas.

Il faut mettre ta fonction volatile, et faire F9 pour mettre à jour les comptes après des modifications de couleurs.

Une meilleure méthode serait de mettre des initiales dans les cellules. Des MFC mettraient les couleurs et les totaux seraient mis à jour automatiquement.

eric

Bonjour à toutes et tous,

Rien a ajouter au code d'eriiic qui fonctionne parfaitement.

Toutefois si je peux me permettre d'ajouter ma modeste contribution concernant le recalcule automatique.

Mettre dans ThisWorkbook le code suivant.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

    Calculate

End Sub

Cordialement.

Merci, merci beaucoup ça marche nickel !!!!

Rechercher des sujets similaires à "comptage cases colorees fonction jour"