Je reviens pour mon configurateur une fois de plus, et cette fois-ci l'erreur est assez marrante vous allez voir.
Sur le fichier ci-joint, on crée une feuille par catégorie, cette catégorie étant désignée par un titre et des noms (bref on s'en fout).
Toujours est-il que lorsque j'exécute la première fois juste après avoir ouvert mon fichier ma macro, j'ai une erreur qui est la suivante : "L'indice n'appartient pas à la sélection". Cette erreur s'adresse à la ligne suivante :
Cette troisième feuille est créée au sein de la macro, quelques lignes plus haut.
Le problème est le suivant : Lorsque j'exécute la macro pour la première fois depuis que j'ai ouvert le fichier, j'ai une erreur, et lorsque je regarde mes variables locales, je vois que mon NomFeuil est égal à "", plutot que de prendre le CodeName. En revanche, si je ferme la macro, que je supprime la page générée, et que je relance la macro, cette fois ci le NomFeuil prend la bonne valeur et la macro fonctionne donc correctement.
Est-ce que qqun a une idée ? J'ai essayé de remplir le CodeName juste après la création de la page, j'ai essayé de remplir le CodeName plusieurs fois, en me disant que peut-être sur le premier coup il était encore vide pour une raison ou pour une autre, mais rien n'y fait. Je ne comprends pas pourquoi uniquement lors de la première exécution le CodeName de la feuille que je crée est égal à "".
Encore un essai.
A chaque création de feuille, si le nombre de feuilles attendu n'est pas bon j'ouvre un msgbox.
Si aucune msgbox ne s'ouvre et que ça se plante, alors le problème est autre que celui supposé.
@sylvanu aucune MsgBox ne s'est ouverte. J'avoue n'y rien comprendre.
Je viens de faire un test en calant une Msgbox juste après la création de la feuille avec un ScreenUpdate et on voit bien que la feuille a été créée à ce moment là (en tout cas elle apparait). Alors pourquoi est-ce que je n'arrive pas à récupérer un paramètre de cette feuille, qui existe visiblement ...
Je comprends pas trop là, je me suis dit que c'était peut etre la première feuille créée qui posait problème, donc j'ai fait un test dans lequel j'ouvre et je supprime une première feuille pour servir de "crash test", mais rien n'y fait je bute à nouveau sur le même problème.
Ce qui est rigolo, c'est que sous 2007, ça marche :
J'enregistre le fichier sur le bureau. Je ferme XL. J'ouvre le fichier, et j'obtiens ça au premier lancement.
Essayer cette V6. Je crée une feuille bidon, que je conserve (pas la détruire ) , puis je passe à la suite.
Pièces jointes
Copie de Copie de Copie de Copie de NouvConfigV6.xlsm
Toujours pas ... Un problème avec la feuille précise créée à ce moment là alors ? Mais comment pourrait-il y avoir un problème avec une feuille qui est créée, elle n'aura pas forcément le même indice, ou le même nom, ou le même contenu, je ne comprends pas comment ça pourrait toujours être la même qui pose problème à ce moment là
Pour résumer (et si j'ai bien compris) : parfois le CodeName d'une nouvelle feuille ne retourne rien, sans doute à cause d'un problème de timing de VBE, il faut donc forcer une compilation ...
En rajoutant ces 3 lignes, je n'ai plus d'erreur 9 :
Dim Ctrl As Variant
Set Ctrl = Application.VBE.CommandBars.FindControl(ID:=578)
If Ctrl.Enabled = True Then Ctrl.Execute
C'est ce que j'avais commencé par faire mais ça ne fonctionnait pas.
Bon du coup le fait de forcer l'exécution semble fonctionner, un grand merci à toi !