Fonction qui retourne une collection d'objets - VB/VBA/VBS - Programmation
Marsh Posté le 05-07-2006 à 15:44:37
Si c'est ta fonction "RecValeurs" qui retourne une valeur vaut mieux mettre  
Tabcompany=RecValeurs() 
Non ? 
Marsh Posté le 05-07-2006 à 15:52:25
Je ne pense pas  
 
c est la fonction qui est egale a la collection d'objets 
Marsh Posté le 05-07-2006 à 16:06:44
Voila le code se sera plus sipmle pour comprendre  
 
 
| Code : 
 | 
 
 
 
Voila, maintenant le message d'erreur qui est le suivant : 
 
Only user-defined types defined in public object modules can ve coerced to or from a variant or passed to late-bound functions  
 
Merci d'avance de votre réponse 
Marsh Posté le 05-07-2006 à 16:27:25
Le message, c'est que ton type doit être déclaré public dans un module. 
 
Voir la doc, le chapitre concernant le passage de tableaux en paramètres. 
Marsh Posté le 06-07-2006 à 09:37:52
| JihemAir a écrit : Le message, c'est que ton type doit être déclaré public dans un module.  | 
 
 
Ce qui est le cas, non ? (cf le code) 
Marsh Posté le 06-07-2006 à 09:59:31
Je pense qu'avec les aménagements suivants cela devrait aller mieux (mais à vérifier) 
| Function RecSelection() As myCompany()  | 
 
Pour exemple, voici une fonction qui fonctionne en VB6 
| Function test() As String()  | 
 
edit: je sais pas si en vba ça marchera aussi bien
Marsh Posté le 06-07-2006 à 10:13:49
Merci beaucoup a vous, grave a vos conseils j'ai trouvé !!!
Marsh Posté le 06-07-2006 à 10:23:20
Les seuls changements sont :  
 
 Function RecSelection() As TabCompany 
 
et  
 
RecSelection = TabComp 
 
Merci Mr tegu  
 
Marsh Posté le 06-07-2006 à 10:31:24
Et pourquoi tu lui fais pas retourner TabComp (type Tabcompany) à ta fonction recselection ?
Marsh Posté le 06-07-2006 à 11:00:52
Alors en conservant le retour d'origine 
Public Function RecSelection() As myCompany() 
et 
RecSelection = TabComp.myCompanies() 
ca marche aussi !
Marsh Posté le 05-07-2006 à 15:27:27
Bonjour a tout le monde,
après de multiples recherches mais sans réelles réponses, je m'en remets a vous. Je voudrais savoir comment retourner une collection d'objets. Je m'explique :
Mon type :
Public Type myCompany
nomCompany As String
numCompany As String
End Type
Public Type TabCompany
myCompanies() As myCompany
End Type
Ensuite j ai une fonction ou je remplis mon tableau qui marche tres bien ! Mais impossible de retourner quelque chose. Ma fonction est déclaré comme tel:
Public Function RecValeurs() As Variant
ou bien comme tel
Public Function RecValeurs() As TabCompany
J'instancie mes types crées plus haut et avec pour instruction de retour :
RecValeurs() = TabCompany
Mais rien a faire dans les deux cas une erreur. Que faire ? Est-il impossible de retourner une collection d'objets ?
Je vous remercie d'avance de votre réponse et A très bientôt je l'espere !