Bonjour,
Voici, j'ai créée une collection, je veux que mon programme me retourne tous les éléments de ma collection.
Le problème est qu'il me retourne toujours le même item 7 fois si j'ai 7 éléments dans ma collection.
Voici ma classe créer dans une module de classe
Voici ma collection, créer dans un module de classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public noFab As String Public idXfo As String
Voici mon module application,
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 Option Explicit Private colFabriques As New Collection Public Function add(cFabrique As clsFabrique) colFabriques.add cFabrique, cFabrique.idXfo End Function Public Property Get Count() As Long Count = colFabriques.Count End Property Public Property Get Items() As Collection Set Items = colFabriques End Property Public Property Get item(vItem As Variant) As clsFabrique Set item = colFabriques(vItem) End Property
Merci de votre aide
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 Dim cFabriques As New clsFabriques Dim cFabrique As New clsFabrique 'ajoute des éléments dans ma collection dans un sub Rapport If CLng(varDonnees.Fields("std-cost-total")) = COUT_ZERO Then cFabrique.idXfo = rsDonnees.Fields("id_xfo") cFabrique.noFab = rsDonnees.Fields("xfo_fab") cFabriques.add cFabrique End If Écrire les éléments de ma collection dans un autre Sub Sub ListeFabZero() 'Dim cFabriques As New clsFabriques Dim I, J As Integer Dim ws As Worksheet Application.DisplayAlerts = True Sheets.add(After:=Worksheets(FEUILLE_APPLICATION)).Name = FEUILLE_FABRIQUE Sheets(FEUILLE_APPLICATION).Select Set ws = Application.ActiveWorkbook.Worksheets(FEUILLE_FABRIQUE) ws.Range("A1").Value = FEUILLE_FABRIQUE I = 2 For Each cFabrique In cFabriques.Items ws.Range("A" & I).Value = cFabrique.idXfo I = I + 1 Next cFabrique MsgBox "Le cout de certains fabriqués sont à zéro", vbOKOnly End Sub
Partager