Bonjour,
j'ai fait une macro qui fonctionne parfaitement et qui me donne un tableau variable que j'affiche dans une listbox.
je n'arrive pas à compter le nombre d’occurrences identiques dans mon tableau variable avec de l'afficher dans la list box.
Une idée ? (j'ai mis en gras la partie concernée à la toute fin de la macro)

Code vb : 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
'recherche du matériel
Dim tab_donnees()
Dim tab_recup()
 
Dim derligne_donnees As Integer
 
 
' je recupère ma base
derligne_donnees = Sheets("Gestion des installations").Range("O" & Rows.Count).End(xlUp).Row
 
ReDim tab_donnees(derligne_donnees, 8)
 
    For i = 1 To derligne_donnees
        tab_donnees(i, 0) = Sheets("Gestion des installations").Range("A" & i) 'client
        tab_donnees(i, 1) = Sheets("Gestion des installations").Range("M" & i) 'date
        tab_donnees(i, 2) = Sheets("Gestion des installations").Range("N" & i) 'nombre de cameras
        tab_donnees(i, 3) = Sheets("Gestion des installations").Range("O" & i) 'type camera
        tab_donnees(i, 4) = Sheets("Gestion des installations").Range("P" & i) 'type ecran
        tab_donnees(i, 5) = Sheets("Gestion des installations").Range("Q" & i) 'type dvr
        tab_donnees(i, 6) = Sheets("Gestion des installations").Range("R" & i) 'type DD
        tab_donnees(i, 7) = Sheets("Gestion des installations").Range("S" & i) 'type alim
 
    Next
 
 
 
' je compte le nombre de ligne de mon tableau resultats
 
For i = LBound(tab_donnees, 1) To UBound(tab_donnees, 1)
 
If clientbox = tab_donnees(i, 0) Then
 
n = n + 1
 
End If
 
Next
 
 
' je charge mon tableau de resultats et transforme mon tableau en 3 colonnes en comblant les trous
If Not installbox.text = "" Then
Dim derligne_recup As Integer
 
derligne_recup = n * 5
 
 
ReDim tab_recup(derligne_recup, 2)
 
Dim client As String
Dim date_ins As Date
 
client_box_rec = clientbox.text
date_ins = installbox.text
 
 
k = 1
For i = LBound(tab_donnees, 1) To UBound(tab_donnees, 1)
 
    If client_box_rec = tab_donnees(i, 0) And date_ins = CDate(tab_donnees(i, 1)) Then
 
 
 
 
tab_recup(k, 0) = tab_donnees(i, 2) 'nb de matos
       tab_recup(k, 1) = tab_donnees(i, 3) 'matos
 
 
 
       If Not tab_donnees(i, 4) = "" Then
       tab_recup(k + 1, 1) = tab_donnees(i, 4)
 
       End If
 
       If Not tab_donnees(i, 5) = "" Then
       tab_recup(k + 2, 1) = tab_donnees(i, 5)
 
       End If
 
       If Not tab_donnees(i, 6) = "" Then
       tab_recup(k + 3, 1) = tab_donnees(i, 6)
 
       End If
 
       If Not tab_donnees(i, 7) = "" Then
       tab_recup(k + 4, 1) = tab_donnees(i, 7)
 
       End If
 
k = k + 5

End If
Next
Me.listMatos.AddItem
listMatos.List = tab_recup
End If