ejecutar macro escribiendo el nombre de esta en un textbox

17/05/2007 - 18:01 por daniel | Informe spam
Hola a todos muchas gracias a todos por toda la ayuda dada en anteriores
consultas

haber si se puede hacer estas dos cosas
1)dentro de un userform con un textbox y un comandbutton
escribir que al escribir el nombre de una macro y al pulsar el boton se
ejecute esta
Ej: dentro del codigo del userform tengo las siguientes macros
sub abrir()
msgbox "abrir"
end sub
sub cerrar()
msgbox "cerrar"
end sub
estas son macros para que se entienda mejor las que quiero poner son mas
largas
lo que quiero es que cuando escriba en el textbox1 la palabra "abrir" y
luego pulse el comnandbutton1 se ejcute la macro abrir.


2) hacer lo mismo que en el punto 1 lo unico cambiando lo siguiente
poner en un label el nombre del modulo del que se van a sacar las macros



un saludo y muchas gracias a todos
Daniel

Preguntas similare

Leer las respuestas

#1 Juan M
17/05/2007 - 18:27 | Informe spam
"daniel" escribió en el mensaje
Hola a todos muchas gracias a todos por toda la ayuda dada en anteriores
consultas

haber si se puede hacer estas dos cosas
1)dentro de un userform con un textbox y un comandbutton
escribir que al escribir el nombre de una macro y al pulsar el boton se
ejecute esta
Ej: dentro del codigo del userform tengo las siguientes macros
sub abrir()
msgbox "abrir"
end sub
sub cerrar()
msgbox "cerrar"
end sub
estas son macros para que se entienda mejor las que quiero poner son mas
largas
lo que quiero es que cuando escriba en el textbox1 la palabra "abrir" y
luego pulse el comnandbutton1 se ejcute la macro abrir.


2) hacer lo mismo que en el punto 1 lo unico cambiando lo siguiente
poner en un label el nombre del modulo del que se van a sacar las macros



un saludo y muchas gracias a todos
Daniel



Hola Daniel,

¿Por qué quieres hacer todo eso?

Si las macros deben estar escritas, al igual que los módulos, y cada macro
hace una cosa determinada, no sería mas razonable poner varios botones en el
que cada uno realice una acción concreta, a tener que hacer que el ususario
se aprenda el nombre de todas las macros y en que módulos se encuentran.

De todas formas, una opción sería por cada macro que creas emplear la
estructura SELECT...CASE para ejecutar cada procedimiento en función de lo
elegido.

A la espera de que alguien con otra idea al respecto, un saludo.
Juan
Respuesta Responder a este mensaje
#2 Ivan
17/05/2007 - 22:17 | Informe spam
On 17 mayo, 18:01, "daniel" wrote:
Hola a todos muchas gracias a todos por toda la ayuda dada en anteriores
consultas

haber si se puede hacer estas dos cosas
1)dentro de un userform con un textbox y un comandbutton
escribir que al escribir el nombre de una macro y al pulsar el boton se
ejecute esta
Ej: dentro del codigo del userform tengo las siguientes macros
sub abrir()
msgbox "abrir"
end sub
sub cerrar()
msgbox "cerrar"
end sub
estas son macros para que se entienda mejor las que quiero poner son mas
largas
lo que quiero es que cuando escriba en el textbox1 la palabra "abrir" y
luego pulse el comnandbutton1 se ejcute la macro abrir.

2) hacer lo mismo que en el punto 1 lo unico cambiando lo siguiente
poner en un label el nombre del modulo del que se van a sacar las macros

un saludo y muchas gracias a todos
Daniel




hola chicos,

aunque estoy de acuerdo con Juan, en lo que te comenta, solo como
curiosidad y por aquello de aportar esa idea (en este caso creo que
peor) que comenta Juan,tambien podrias usar el metodo CallByName
(echale un ojo en la ayuda)

pej. podrias hacer algo asi para probarlo

´-
Sub verMensaje()
MsgBox "funciono CallByName"
End Sub
'--
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
CallByName Me, TextBox1.Text, VbMethod
On Error GoTo 0
End Sub
'-

bueno, lo dicho, solo como idea y entretenimiento.

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#3 Héctor Miguel
18/05/2007 - 04:05 | Informe spam
hola, daniel 1

1) dentro de un userform con un textbox y un comandbutton
... que al escribir el nombre de una macro y al pulsar el boton se ejecute esta [...]
2) hacer lo mismo que en el punto 1 lo unico cambiando lo siguiente
poner en un label el nombre del modulo del que se van a sacar las macros



[creo que] necesitas ser mas [y tener] 'claro' en cuanto a la 'necesidad' de incluir el nombre de algun modulo -?-
[teoricamente] el nombre de modulo solo seria necesario en caso de existir dos [o mas] procedimientos del mismo nombre -?-
[con lo cual] fuera de tratarse de procedimientos 'privados' [como los eventos de hojas en un solo libro]...
-> podrias poner en riesgo la integridad del libro a traves del proyecto de macros :-(
[ademas] para todo procedimiento 'repetido' seria INDISPENSABE incluir en su llamada el nombre del modulo
[no asi cuando se trata de procedimientos de nombre unico en el libro] <= OJO

suponiendo que tienes dos textboxes de nombres: tbModulo y tbMacro [solo por 'obviar' el uso pretendido de cada uno]
prueba con las siguientes lineas en el evento 'click' del boton de comando en el modulo de ese formulario:

Private Sub CommandButton1_Click()
Dim Macro As String
If tbMacro = "" Then Exit Sub Else _
Macro = IIf(tbModulo <> "", tbModulo & ".", "") & tbMacro
Application.Run Macro
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 daniel
18/05/2007 - 15:55 | Informe spam
Hola a todos
Muchas gracias a Ivan y a Hector Miguel
funcionan perfectamente
:)

mil gracias a los dos
un saludo
daniel

"Héctor Miguel" escribió en el mensaje
news:
hola, daniel 1

1) dentro de un userform con un textbox y un comandbutton
... que al escribir el nombre de una macro y al pulsar el boton se ejecute
esta [...]
2) hacer lo mismo que en el punto 1 lo unico cambiando lo siguiente
poner en un label el nombre del modulo del que se van a sacar las macros



[creo que] necesitas ser mas [y tener] 'claro' en cuanto a la 'necesidad'
de incluir el nombre de algun modulo -?-
[teoricamente] el nombre de modulo solo seria necesario en caso de existir
dos [o mas] procedimientos del mismo nombre -?-
[con lo cual] fuera de tratarse de procedimientos 'privados' [como los
eventos de hojas en un solo libro]...
-> podrias poner en riesgo la integridad del libro a traves del proyecto
de macros :-(
[ademas] para todo procedimiento 'repetido' seria INDISPENSABE incluir
en su llamada el nombre del modulo
[no asi cuando se trata de procedimientos de nombre unico en el libro]
<= OJO

suponiendo que tienes dos textboxes de nombres: tbModulo y tbMacro [solo
por 'obviar' el uso pretendido de cada uno]
prueba con las siguientes lineas en el evento 'click' del boton de comando
en el modulo de ese formulario:

Private Sub CommandButton1_Click()
Dim Macro As String
If tbMacro = "" Then Exit Sub Else _
Macro = IIf(tbModulo <> "", tbModulo & ".", "") & tbMacro
Application.Run Macro
End Sub

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

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida