|
|
|
|
Bonjour a tous
En introduction, je vous propose mon code:
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
Bonjour,
|
Re huma, bonjour bidouilleu_r
Public Function UserInput()
Dim file_names As Variant, dummy As Variant
file_names = Application.GetOpenFilename("All Files (*.*),*.*", , "Select Specification Files", , True)
ReDim dummy(UBound(file_names) - 1, 2)
For Counter = 0 To UBound(dummy)
dummy(Counter, 2) = Replace(file_names(Counter + 1), CurDir() & "\", "")
Next
UserInput = dummy
End Function
Sub test()
triplet = UserInput
'sort le titre du 1° fichier sélectionné
Range("B2") = triplet(0, 2)
' rentre la division
triplet(0, 1) = 134
'restitue
Range("B3") = triplet(0, 1)
End Sub
:-x |
Bonjour huma, michel_m
|