Option Explicit
Function GetlisteCountProp()
'patricktoulon
'Version 2
Dim i As Long, d As Object, k, tb
Dim y&, esP$, Cd&, Fa&, Ad&, Ch&, Rt&, Adoptable&, Non_Adoptable&, Dc&
Set d = CreateObject("scripting.dictionary")
tb = ThisWorkbook.Sheets("BD").Range("table").Value
For i = 1 To UBound(tb)
'//////////////////////////////////////////////////////////////////////////////////////////
'selon les valeaur dans les colonnes corespondante on met 1 ou 0 dans les variable du même non que le header
y = Year(tb(i, 1))
esP = Trim(tb(i, 4))
Cd = Abs(Trim(tb(i, 3)) = "Cd")
Fa = Abs(Trim(tb(i, 3)) = "Fa")
Ad = Abs(Trim(tb(i, 3)) = "Ad")
Ch = Abs(Trim(tb(i, 3)) = "Ch")
Rt = Abs(Trim(tb(i, 3)) = "Rt")
Adoptable = Abs(Trim(tb(i, 5)) = "Adoptable")
Non_Adoptable = Abs(Trim(tb(i, 5)) = "Non Adoptable")
Dc = Abs(Trim(tb(i, 6)) <> "")
'MsgBox Join(Array(y, esP, cd, fa, Ad, Ch, Rt, Adoptable, Non_Adoptable, Dc))
'//////////////////////////////////////////////////////////////////////////////////////////
'Maintenant on va alimenter le dico selon si la clé année et bestiole existe ou pas
If Not d.exists(y & "_" & esP) Then
' donc si il n'existe pas on ajoute un array avec les valeur précédemment obtenue
d(y & "_" & esP) = Array(y, esP, Cd, Fa, Ad, Ch, Rt, Adoptable, Non_Adoptable, Dc)
Else
'sinon on reprend l'array de la clé
'et on additionne les items de l'array avec les valeurs obtenue Dim arr
Dim arr
arr = d(y & "_" & esP)
arr(2) = arr(2) + Cd
arr(3) = arr(3) + Fa
arr(4) = arr(4) + Ad
arr(5) = arr(5) + Ch
arr(6) = arr(6) + Rt
arr(7) = arr(7) + Adoptable
arr(8) = arr(8) + Non_Adoptable
arr(9) = arr(9) + Dc
d(y & "_" & esP) = arr
End If
Next
'k = d.keys
'MsgBox Join(d(k(1)), ";")
'//////////////////////////////////////////////////////////////////////////////////////////
' voila maintenant on a un dictionnaire rempli avec des clés et un array a chaque clé
' exemple
' clé = "2024_chien"
'et les valeaurs de l'array = [2024;Chien;4;4;4;0;0;12;0;0]
'
'il nous reste plus a retranscrire tout ca dans une variable tableau
i = 0
Dim xr, c&
ReDim tbl(d.Count, 9) 'on dimentionne une variable tableau comme le dictionnaire avec 9 colonnes(EN BASE 0!!!!)
For Each k In d.keys
xr = d(k)
For c = 0 To UBound(xr)
tbl(i, c) = xr(c)
Next
i = i + 1
Next
GetlisteCountProp = tbl 'la fonction retourn le tableau
End Function