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

[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:

TooFatBoy

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

Bonsoir,

Je pense que ActiveSheet.Name est simplement le nom de la feuille active, c'est tout.
Donc ça doit insérer le code dans la feuille active, non ?
 

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:

antha

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

Merci Didier, avec CodeName, cela fonctionne parfaitement!
Je suis rassuré que ca vienne de là

Bonne fin de soirée à tous les deux.
 

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,
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…