[VBA] Utilisation du nom "personnalisé" au lieu de Feuilx

antha

XLDnaute Occasionnel
[Résolu] Utilisation du nom "personnalisé" au lieu de Feuilx

Bonsoir à tou(te)s !

J'ai essayé d'adapter la macro donnée par MichelXld sur ce post, pour ajouter dynamiquement un bouton et y affecter une macro.

Je me heurte à 1 problème sur la partie qui implémente le code du bouton :

Code:
With ThisWorkbook.VBProject.VBComponents([B]ActiveSheet.Name[/B]).CodeModule
x = .CountOfLines + 1
.InsertLines x, laMacro
End With

Ce n'est pas le bon nom de feuille qui est utilisé.

Ex. sur excel 3 feuilles : janvier, février, mars. Sur l'éditeur VBA, elles apparaissent en Feuil1(janvier), Feuil2(février), Feuil3(mars).

Lorsque l'on ajoute une feuille (début de macro), elle apparaît en Feuil4(Feuil1).

Donc quand dans le code au dessus, il est indiqué Activesheet.Name, ce n'est pas le nom "perso", mais la numérotation de base qui sert de référence.

Ici Activesheet.Name renvoie à Feuil1, ensuite VBA recherche la bonne feuille qui pour lui est celle qui s'appelle Feuil1 donc "Janvier". Et insère donc le code dans la mauvaise feuille.
Si la nouvelle feuille avait été renommée (ex. avril), VBA aurait cherché avril et ne le trouve donc jamais et génère une erreur 9.


Sauriez vous s'il est possible de spécifier le nom "personnalisé" de la feuille lors de l'ajout du code ?

J'espère avoir été assez clair pour être compréhensible...!

Merci de votre aide

Bonne soirée:)
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : [VBA] Utilisation du nom "personnalisé" au lieu de Feuilx

Bonsoir antha,

Pas vraiment certain d'avoir cerné totalement le problème, mais je tenterais bien un :
Code:
[COLOR=NAVY]With[/COLOR] ThisWorkbook.VBProject.VBComponents(ActiveSheet.[B]CodeName[/B]).CodeModule
Cordialement,

EDITION:
Bonsoir Marcel32 je ne t'avais pas vu.
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : [VBA] Utilisation du nom "personnalisé" au lieu de Feuilx

Re,

Content que tu aies trouvé réponse à ta question antha. :)

Pour ton info Marcel32, le code cité dans le premier post d'antha ne peut fonctionner que si tu n'as pas changé le nom d'onglet de la feuille. Sauf erreur de ma part, VBComponents attend le CodeName exclusivement et non le Name de la feuille.
Lors de la création d'une feuille, le CodeName et le Name sont les mêmes : Feuil1 / Feuil1 par exemple. Si tu changes le nom de l'onglet, ça peut devenir Feuil1 / "Ma Feuille" et là, seul le CodeName sera recevable pour VBComponents.

Cordialement,
 

Membres actuellement en ligne

Statistiques des forums

Discussions
314 644
Messages
2 111 528
Membres
111 189
dernier inscrit
Laurent.