Bonjour !
J'essai de coder une fonction relativement simple (comme j'y suis depuis un bout de temps, elle ne me paraît plus si simple). Cette fonction doit simplement prendre en argument un range (une plage de cellule comme A5:A20 par exemple) et incrémenter une variable de 1 à chaque fois qu'elle rencontre la valeur "P" dans une des cases de mon range.
Exemple : |P|Q|Q|P|P|A| résultat de la fonction : 3
Voila la fonction que j'ai faite. Le souci, c'est que un, elle ne marche pas et deux (mais c'est moins grave) elle est pas pratique car elle oblige à rentrer toutes les cellules de notre range une par une dans les arguments.
La raison pour laquelle elle ne marche pas : la comparaison If Elements(cmpt) = "P" ne renvoie jamais vrai, et le compteur ne s'incrémente donc jamais.
Merci de votre aide et bon weekend !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Public Function JourHoLigne3(ParamArray Elements() As Variant) As Long Dim cmpt As Long Dim Total As Long Total = 0 If UBound(Elements) > -1 Then For cmpt = LBound(Elements) To UBound(Elements) If Elements(cmpt) = "P" Then Total = Total + 0.5 Next cmpt End If MsgBox Elements(0) JourHoLigne3 = Total End Function
Partager