J'ai un UserForm avec un ListBox pour que l'user puisse sélectionner des valeurs. Ces valeurs sont UserForm_Initialize()
dans UserForm_Initialize()
via un appel de fonction au module de base, qui renvoie un tableau comme variante. Cela fonctionne sans problème.
Si l'user sélectionne certaines valeurs et appuie sur un button, les buttons Click event appellent une autre fonction dans le module de base pour transmettre le tableau entré par l'user et calculer les choses. Cela ne fonctionne pas du tout. La valeur reçue dans le module de base est toujours inexistante (pas même nulle, mais je ne connais pas le terme VBA correct, rien n'est là).
Les choses que j'ai essayé jusqu'à présent:
Ma question est la suivante: Comment puis-je passer des arrays de UserForms à Modules (pas vice versa) sans countr sur des variables globales et sans perdre le contenu du tableau?
Cette question peut être liée à cette question sur le passage d'une string du formulaire au module , mais la réponse acceptée ne m'intéresse pas (en utilisant les variables globales).
Lors de l'ajout du code tel que demandé dans les commentaires, je suis tombé sur le fait que je pourrais imprimer le contenu du tableau, mais il ne montrerait rien dans le débogueur et la taille serait 0.
La question de la taille était parce que j'avais utilisé Len(array)
au lieu de Application.CountA(array)
et que j'avais un rest sur le On error resume next
de l'ancien encore dans le code, ce qui signifiait qu'aucune erreur n'a été soulevée et que la taille était toujours mise à zéro. … C'était la raison du comportement étrange.