Function RecupNbHeuresInsertionArg(ByRef Cellule As Range) As Long Dim numcol As Integer Dim cell As Range Application.Volatile True numcol = Cellule.Value Dim som As Long som = 0
Sheets("Sem " & numcol).Range("B25:F44").Select
For Each cell In Selection
If cell.Interior.ColorIndex = 6 Then som = som + cell.Value
End If
Next cell
RecupNbHeuresInsertionArg = som
End Function
Je souhaite que cette fonction calcule la somme par couleur (ColorIndex = 6 est jaune) de l'onglet sélectionné par la variable d'entrée de ma fonction (cellule) sur une plage précise (ici B25:F44) de cet onglet.
Peut-être quelque chose d'évident m'échappe? Cette fonction me retourne une erreur #Valeur
J'espère être clair, merci d'avance pour votre aide précieuse
Lameche15
Messages postés156Date d'inscriptionmardi 9 septembre 2008StatutMembreDernière intervention15 septembre 2022 19 févr. 2019 à 09:34
Merci pour ton aide, je ne vois pas bien comment je peux faire autrement qu'utiliser la méthode Select.
Peut-etre une idée?
--
Lameche15
Messages postés156Date d'inscriptionmardi 9 septembre 2008StatutMembreDernière intervention15 septembre 2022 19 févr. 2019 à 16:50
Autant pour moi, avec un algo un peu différent cela fonctionne très bien.
Merci infiniment pour ton aide
@ Bientôt
Patrice33740
Messages postés8556Date d'inscriptiondimanche 13 juin 2010StatutMembreDernière intervention 2 mars 202321 20 févr. 2019 à 17:53
Pour l'exemple :
Sub Test()
MsgBox RecupNbHeuresInsertionArg(Worksheets("Sem 1").Range("B25:F44"))
End Sub
Function RecupNbHeuresInsertionArg(ByRef Plage As Range) As Long
Dim cel As Range
Dim som As Long
Application.Volatile True
For Each cel In Plage.Cells
If cel.Interior.ColorIndex = 6 Then som = som + Val(cel.Value)
Next cel
RecupNbHeuresInsertionArg = som
End Function