Bonjour,
J'ai écrit cette fonction qui me permet de compter des valeurs uniques.
Cette fonction est placée dans un module standard du fichier sur lequel je travaille (et également dans mes macros complémentaires maintenant). Elle fonctionne bien, et les résultats sont ceux que j'attends.
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Function CompterValeursUniques(PlageComptage As Range, Optional Plage As Range = Nothing, Optional Critere As Variant) Dim Comptage As Variant, Element As Variant, TabPlage(), Collec As Collection, wksPlage As Worksheet, wksPlageComptage As Worksheet Dim strWksPlageComptage As String Set Collec = New Collection strWksPlageComptage = PlageComptage.Worksheet.Name Set wksPlageComptage = Worksheets(strWksPlageComptage) Comptage = 0 On Error Resume Next '====== SI LA PLAGE OU APPLIQUER LE CRITERE ET LE CRITERE NE SONT PAS DEFINIS. If Plage Is Nothing And IsMissing(Critere) Then For Each Element In PlageComptage Collec.Add CStr(Element), CStr(Element) Next Element Else '====== SI LA PLAGE ET LE CRITERE SONT DEFINIS. TabPlage = Plage Comptage = 0 For i = LBound(TabPlage) To UBound(TabPlage) With wksPlageComptage If .Cells(i, Plage.Column) = Critere Then Collec.Add CStr(.Cells(i, PlageComptage.Column)), CStr(.Cells(i, PlageComptage.Column)) End With Next i End If On Error GoTo 0 Comptage = Collec.Count Set Collec = Nothing CompterValeursUniques = Comptage End Function
Cependant, à chaque fois que j'ouvre le-dit fichier, toutes les cellules dans lesquelles j'utilise cette fonction m'indiquent #VALEUR. F9 ne change rien, et je suis obligé de faire F2 + ENTREE dans chaque cellule pour que la fonction m'affiche de nouveau le résultat correct.
Est-ce que vous avez une idée de la raison? Au passage, si vous avez des améliorations pour ma fonction, je suis preneur.![]()
Partager