For i = .ListCount - 1 To Application.Max(.ListCount - 3, 0) Step -1
rectificationOui sauf que tu embarques tout le UserForm dans chaque instance de classe.
j'ai trouvé!!!!!!!!!!!!Je suis sur un problème de positionnement de Shape que je n'arrive pas à résoudre. Tu auras du grain à moudre sous peu
C'est quoi ce charabia ???j'instancie x instances du module userform2
j'instancie pas le clisd (l'object userform si tu comprends mieux comme ça ) avec l'instance
Lorsqu'il n'y a qu'un seul item pour la liste de la ComboBox ça ne plante pas.Problème avec le code de @Dudu2, il plante lorsque le tableau alimentant la combobox contient une seule ligne ou vide (array=empty).
@Dranreb l'art et la manière de dire les mêmes choses autrementC'est quoi ce charabia ???
Pour chaque New UserForm1 vous mobilisez de nouveaux emplacements mémoire réservés au fonctionnement de tous ses contrôles, même si vous ne les utilisez pas. Le module lui reste toujours unique.
Messieurs, je vous remercie beaucoup de m'avoir répondu. Je me sens un peu 'out' (niveau).Lorsqu'il n'y a qu'un seul item pour la liste de la ComboBox ça ne plante pas.
Lorsqu'il n'y a aucun item pour la liste de la ComboBox ça n'a pas de sens d'envoyer une ComboBox et dans le fichier fourni ça plante avant l'appel aux fonctions sur le .DataBodyRange qui est Nothing et ne peut donc faire l'objet d'un traitement.
Edit: alors oui, je pourrais vérifier que la liste fournie n'est pas vide, mais bon...
Non, les exemplaires créés par New, ce sont des structures pour toutes les données définies par le module, y compris les contrôles dans le cas d'un UserForm, qu'on les utilise ensuite ou non. Le code n'est pas chargé par un New. Il est toujours là depuis l'initialisation du projet VBA, prêt à exécuter à tout moment une méthode portant sur tout exemplaire créé.tout ce que tu charge c'est tout le code du module
comme je l'ai dit a @cp4 il faut faire la différence entreNon, les exemplaires créés par New, ce sont des structures pour toutes les données définies par le module, qu'on les utilise ensuite ou non. Le code n'est pas chargé par un New. Il est toujours là depuis l'initialisation du projet VBA