Bonjour,
En attendant ta réponse j’ai jeté un coup d’œil sur ton code. Si au préalable j’hésitais à utiliser le terme que JExcel utilise au sujet de ce dernier, je peux affirmer maintenant que ce code, comme le dit JExcel à juste titre, est « merdique ». La construction de ton UserForm, que j’ai appelé « Formulaire » est scabreuse, lourde et truffée d’erreurs et d’autre part tu as construit quelques procédures dont je ne comprends pas l’utilité, bien que je ne les ai pas encore approfondiies.
Commençons par ton UserForm
- Tu le construis à la fois « manuellement » en utilisant la boite d’outils et « informatiquement » par le biais de petites procédures. Je ne comprends pas pourquoi. De plus il contient des contrôles différents (labels, textbox, boutons, combobox et un grand listbox). Ces derniers sont placés de façon assez anarchique et peuvent pour certains se superposer.
- A l’activation de cet UserForm tu décides de cacher certains contrôles ce qui bien sûr n’est pas interdit, mais pourquoi ?
- Tu veux mettre des entêtes à ta listbox et à tes textbox. C’est là où je ne comprends pas pourquoi tu ne les pas construites « manuellement » avec la boite d’outils.
- Tu veux donner un nom à ces entêtes, pour cela tu fais référence au contenu de certaines cellules de la feuille « PRIX », mais ces cellules sont vides.
- Tu veux colorer le texte de ces entêtes en allant chercher la couleur dans une feuille qui n’existe pas, la feuille « données »
- Tu désires placer ces entêtes dans ton Userform à des endroits bien précis. Pour ce faire tu utilises à juste titre les fonctions « Top » et « Left » mais les valeurs que tu leur attribues sont bizarroïdes, si le y = UserForm1.ListBox1.Top -12 convient pour la position « Top », les valeurs de x=x + f.Columns(i).Width * 1.2 te donne des résultats qui ne conviennent pas, par exemple le dernier Label sort de ta ListBox1.
- Enfin tu crées un tableau « TblTmp » dans lequel tu utilses une fonction « choix » qui selon moi, sauf erreur de ma part, n’est pas définie. De plus je ne comprends pas très bien cette petite procédure utilisant ce tableau
Comme tu peux le constater il y a beaucoup de problèmes. J’ai arrangé ton code, tout en respectant ta problématique. Ce code je l’ai inscrit dans la feuille 38 (PRIX) et il réagit à l’appui sur le bouton « OUVRE UF » de cette feuille. En voici le résultat.
Comme tu peux le constater il y a des problèmes. J’ai donné des noms quelconques aux Labels et j’ai choisi des couleurs également quelconques.
J’attends ta réponse et ne ferai plus rien tant qu’elle ne me sera pas parvenue surtout en me donnant les éléments manquants : en particulier la feuille « données » et les noms à attribuer aux Labels.
De plus je souhaiterais que tu m’expliques ce que tu veux réellement faire avec ce « Formulaire »