2009-04-17 4 views
3

J'ai un problème XL en ce qui concerne la redéfinition de l'affectation Macro de bouton radio lorsque la feuille source est copiée dans une feuille de calcul de destination dans un nouveau classeur.Réaffectation de Macro à bouton de commande lorsque le fichier copie

Lorsque je clique sur le bouton radio dans la feuille de destination, il tente d'ouvrir le classeur source PLUTÔT pour exécuter la macro assignée à la touche.

J'ai vérifié et le classeur de destination a en effet copie identique de la macro, comme le classeur source d'origine. Cependant, en cliquant avec le bouton droit de la souris/Assign Macro sur le bouton radio, je trouve que le chemin STILL pointe vers le classeur/feuille de calcul source.

J'ai essayé le code suivant alors qu'il en cours d'exécution de la feuille de calcul source, mais il ne fonctionne pas.

code:

wbkDESTINATION.Sheets("1-Start").Select 
ActiveSheet.Shapes("Option Button 1").Select 
Selection.OnAction = "Sheet1.WEEKLY" 

Je vous serais reconnaissant de votre suggestion, comment modifier le dernier code Selection.OnAction afin que XL sait qu'il choisir de la feuille de calcul de destination, au lieu de sauter vers le classeur source d'origine.

Merci

Répondre

0

D'oh! Je viens de réaliser que vous utilisez des contrôles Forms. Vous pouvez vous assurer que vous appelez la procédure souhaitée en faisant référence explicitement le classeur, comme ceci:

wbkDESTINATION.Sheets("1-Start").Select 
ActiveSheet.Shapes("Option Button 1").Select 
Selection.OnAction = ThisWorkbook.name & "!Sheet1.WEEKLY" 

Je pense que si les contrôles apparaissent dans la collection Les formes, ils sont en fait des objets OLE avec leurs propres événements _CLICK dans le code de feuille de calcul module et ne peut pas avoir d'autres procédures qui leur sont attribuées via onaction. L'aide est prévisiblement vague sur cette distinction importante cependant.

J'ai confirmé ce pendant le test moi-même; les contrôles font toujours référence aux événements _click dans la feuille de calcul parent. Comment copiez-vous la feuille de calcul? J'ai essayé d'utiliser l'interface utilisateur, et par programmation à partir de modules de code de norme et de feuille de calcul et obtenu les mêmes résultats à chaque fois.

Questions connexes