ejecutar procedimiento teniendo su nombre(como string)

29/12/2006 - 02:03 por Ivan | Informe spam
hola a todos

estoy intentando una cosa que no se si es posible (de momento no lo
consigo)

se trata de ejecutar un procedimiento tomando su nombre de una celda, o
de una variable que lo tome de esta

Algo asi como 'Call .[a1].value', o mimacro=.[a1]: call mimacro, pero
me da error.

Sin embargo, y si no me equivoco, esto si es valido para la propiedad
OnAction de los comandos de barras de herramientas -> mimacro=.[a1]:
.OnAction=mimacro

he estado indagando a partir de ->
Application.VBE.ActiveCodePane.CodeModule. -> pero no he llegado a
ningun lado

¿existe algun modo de referirse a los procedimientos que no sea su
nombre directamente?¿son/pueden considerarse un objeto, con su
respectiva coleccion contenedora?, y de ser asi, ¿cual es su nombre y
como se podria recorrer esta?

bueno, no se si me he explicado, pero si me podeis echar un nueva mano,
os lo agradezco

un saludo y hasta pronto
Ivan
 

Leer las respuestas

#1 Héctor Miguel
29/12/2006 - 02:29 | Informe spam
hola, Ivan !

estoy intentando una cosa que no se si es posible (de momento no lo consigo)
se trata de ejecutar un procedimiento tomando su nombre de una celda, o de una variable que lo tome de esta
Algo asi como 'Call .[a1].value', o mimacro=.[a1]: call mimacro, pero me da error...



asumiendo que 'A1' contiene el nombre 'valido' de algun procedimiento 'existente' [etc. etc. etc.]

op1: Application.Run [a1].Text

op2: Application.Run (Range("a1"))

si no se trata de la hoja 'activa'... [habra que 'emparentar' la celda con su hoja correspondiente]
si la celda no coincide con el nombre de alguna macro existente... [habra que usar un On Error Resume Next] ... ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares