Bonjour,

Avant de vous demander de l'aide j'ai regardé ce qui se faisait ailleurs, mais ça n'a pas été concluant, j'ai donc créé mon propre code mais comme je ne maitrise pas les Array ou tableau dimensionnel, ça plante.

Mon souhait est de compter le nombre de valeur distincte dans un liste de plusieurs centaines de ligne.

Au départ je faisait un Nb.si( plage(colonne) , critere 1) puis de ça je voulais obtenir le nombre d'éléments distinctes d'une autre plage(colonne) mais avec les formule je séchais.

Du coup, j'ai créé ce code qui me permet d'interroger les ligne suvant mon critère 1 puis d'inclure l'élement en question dans un tableau dimensionnel s'il n'existe pas. Or avec ce code j'ai le message " erreur d'execution 9 : l'indice n'appartient pas à la selection" grrr!!!
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
 
Sub Compteur()
Dim i As Integer, a As Integer, b As Integer, x As Integer, finlist As Integer
 
Dim tab_lot() As Variant
 
Dim tab_ref() As Variant
 
i = 4
 
finlist = Sheets("Réserve M3").Range("A5000").End(xlUp).Row
 
With ActiveSheet
For i = 4 To 36
 
    x = 4
    a = 1
    b = 1
    'zone de recherche
    For x = 4 To finlist
 
        'recherche même emplacement
        If Sheets("Réserve M3").Cells(x, 2) = .Cells(i, 6) Then
 
            'compteur lot
            For a = 1 To UBound(tab_lot, 1)
                If Sheets("Réserve M3").Cells(x, 6) <> tab_lot(a) Then
                    tab_lot(a) = Sheets("Réserve M3").Cells(x, 6)
                    a = a + 1
                End If
            Next a
 
            'compteur ref
            For b = 1 To UBound(tab_ref, 1)
                If Sheets("Réserve M3").Cells(x, 5) <> tab_ref(b) Then
                    tab_ref(b) = Sheets("Réserve M3").Cells(x, 5)
                    b = b + 1
                End If
            Next b
 
        End If
 
    Next x
 
    'retranscription des compteurs
    .Cells(i, 3) = b - 1 'nombre réf
    .Cells(i, 4) = a - 1 'nombre lot
 
Next i
 
End With
 
End Sub
je soupçonne une mausaise déclaration.


Merci