Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Insére code dans bouton par une maccro : erreur indice 9

  • Initiateur de la discussion Initiateur de la discussion guil456
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guil456

XLDnaute Nouveau
Bonjour,

Voici mon problème :
Je cherche à créer un nouveau classeur à partir d'un premier et y ajouter un CommandButton qui appelle un userform qui lui même appelle un module.

La création du bouton dans le nouveau classeur fonctionne.

Cependant, je n'arrive pas à insérer le simple code Userform4.show sur CommandButton_Click, ni à importer l'userform et le module.

Voici le code trouvé sur plusieurs forums pour écrire la maccro dans le nouveau bouton :


et le code pour le module et l'userform qui fonctionne pour quelqu'un mais pas pour moi


vclasseur est le nom du nouveau classeur créé et ANNUAIRE ST est celui qui contient l'userform 4 et le module 5

Avez vous une idée du pourquoi du comment? ça fait un petit bout de temps que je cherche et je ne trouve rien vu que ces codes ne provoquent pas d'erreur et ont l'air de marcher pour les autres.

Merci pour votre aide
 
Dernière édition:
Re: Re : Importer module + userform dans nouveau classeur

Bonjour,

Est-ce-que tu as compilé ton code pour le debugger ?

As-tu la référence nécessaire à VBE ?

A +
🙂

Compiler mon code? avec le pas à pas? non je n'y avais pas pensé, je vais essayé.

Je dois avoir la référence nécessaire "microsoft visual basic for application extensibility 5.3" , et je crois que si je ne l'avais pas ça devrait créer une erreur il me szemble. Merci pour cette première piste, je regarde tout de suite.
 
Re: Re : Importer module + userform dans nouveau classeur

j'ai regardé en fait au tout début de ma maccro qui commence à être assez longue j'avais le on error resume next, je l'ai enlevé et j'ai l'erreur suivante :

.CountOfLines = variable objet ou variable bloc With non défini.
??
 
Re: Re : Importer module + userform dans nouveau classeur

Je continue de chercher depuis tout à l'heure et j'ai un peu avancé, mais ma premirèe question reste pourtant là.
J'ai enregistré l'userform dans mon disque dur et je l'importe simplement par

ActiveWorkbook.VBProject.VBComponents.Import ("C:\Users\Guillaume\Desktop\ANNUAIRE\UserForm4.frm")

J'ai désactivé aussi la sécurité des maccros. Ca fonctionne,

Reste plus qu'à parvenir à écrire simplement 'UserForm4.Show' dans chaque bouton créé et ça , ça ne marche toujours pas.

J'ai trouvé un autre moyen de le faire mais sans résultat.


Une aide serait la bienvenue, j'ai passé ma journée dessus.
 
Dernière édition:
Re: Importer module + userform dans nouveau classeur

Quoique je fasse ça bloque toujours sur la ligne "With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Na me).CodeModule"
j'ai essayé avec .codename .name "Feuil4" "commandbutton" & iX , bref je ne sais plus quoi faire
j'ai toujours l'erreur 9 l'indice n'appartient pas à la sélection, pourtant avec activesheet.codename et sheets(page).activate juste avant je ne vois pas pourquoi j'ai des problèmes. Activesheet est frocément présent par définition.
 
J'ai enfin fini par trouver: Il fallait changer This par Active au début ! ralala, les petits détails de la programmation m'étonneront toujours.
Pour ceux qui liront ce sujet voici la version la plus simple de ce bout de code :
ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule.AddFromString (laMacro)

peut remplacer le with .......
end with
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

F
Réponses
7
Affichages
4 K
E
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…