Probleme User-Defined Type/ Public Object Module
Bonjour a tous
En introduction, je vous propose mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Public Type SpecificationInformation2
Division As Integer
SpecificationNumber As Integer
Title As String
End Type
Option Explicit
Public Function UserInput2() As Collection
Dim Counter As Integer, file_names As Variant, Triplet As SpecificationInformation2
file_names = Application.GetOpenFilename("All Files (*.*),*.*", , "Select Specification Files", , True)
If IsArray(file_names) Then
For Counter = LBound(file_names) To UBound(file_names)
Triplet.Title = Replace(file_names(Counter), CurDir() & "\", "")
UserInput2.Add Triplet
Next Counter
End If
End Function |
Cette fonction est censee extraire le titre de chaque fichier et les mettre dans une collection speciale d'un type que j'ai cree et qui possede 3 attributs.
Probleme: j'ai le message d'erreur suivant
Only public user defined types defined in public object modules can be used as parameters or return types for public procedures of class modules or as fields of public user defined types
Et apperemment ca bloque sur le mot Triplet au niveau de la ligne: UserInput2.Add Triplet
J'ai regarde des FAQ qui me disent de bien faire attention sur la portee de mon type utilisateur mais le fait est que je l'ai bien defini au niveau "public".
Voila je n'arrive pas a trouver la solution
Merci d'avance pour votre aide
Vaine tentative en remplacant la collection par un tableau
J'ai vainement tente de remplacer la collection par un tableau en realisant le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Public Function UserInput2() As SpecificationInformation2
Dim Counter As Integer, file_names As Variant, Triplet As SpecificationInformation2
file_names = Application.GetOpenFilename("All Files (*.*),*.*", , "Select Specification Files", , True)
If IsArray(file_names) Then
ReDim UserInput2(LBound(file_names) To UBound(file_names))
For Counter = LBound(file_names) To UBound(file_names)
UserInput2(Counter).Title = Replace(file_names(Counter), CurDir() & "\", "")
Next Counter
End If
End Function |
Malheureusement, j'obtiens l'erreur suivante:
Compile Error: Expected Array
Incomprehensible -> normalement les tableaux dynamiques n'ont pas besoin d'etre defini, ni meme dimensionne...
Merci d'avance pour votre aide