Ejecutar Private sub desde un módulo diferente

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Ejecutar Private sub desde un mí³dulo diferente

Notapor wenner » 11 Sep 2006 11:21

Hola, estoy empezando con esto del vba y tengo la siguiente duda, es posible ejecutar una macro p. ej. Private sub NombreMacro() desde un módulo diferente.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
wenner
Miembro Frecuente
Miembro Frecuente
 
Registrado: 12 Dic 2004 23:41

Re: Ejecutar Private sub desde un mí³dulo diferente

Notapor p@li » 11 Sep 2006 14:01

hasta donde se eso es imposible.

para llamarla desde otro modulo vas a tener que darle el prefijo Public, o no darle prefijo, justamente, porque la idea del Private es para que solo pueda ser llamado desde ese mismo modulo.

en vez de poner asi
Private sub NombreMacro()

tenes que poner asi
Public sub NombreMacro()

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
p@li
Miembro Frecuente
Miembro Frecuente
 
Registrado: 04 Oct 2005 16:55
Ubicación: Argentina

Re: Ejecutar Private sub desde un mí³dulo diferente

Notapor Carlos Neira » 11 Sep 2006 21:15

si se puede ejecutar desde un modulo independiente inclusive desde un modulo de clase, una macro con la opcion private module...la idea de esto es que no se vean las macros desde los botones....y public crea a todas las variables que se puedan ver o ejecutar desde los diferentes userform y modulos...

mediante la opcion Application.Run "Nombredearchivo.ext"¡nombre de macro! puedes ejecutar todas las macros private que quieras....

espero te sirva de algo la ayuda...
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Carlos Neira
Miembro Frecuente
Miembro Frecuente
 
Registrado: 26 Mar 2006 00:03
Ubicación: bogota

Re: Ejecutar Private sub desde un mí³dulo diferente

Notapor wenner » 12 Sep 2006 05:16

Gracias Carlos, he probado como me has dicho pero no funcionaba lo he modificado de esta forma:

Application.Run "NombreArchivo.xls'!NombreMacro"

Y todo bien, ahora lo que quiero es no poner el nombre de archivo, es decir, que sea el libro abierto, he probado con Me pero no va.

Un saludo.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
wenner
Miembro Frecuente
Miembro Frecuente
 
Registrado: 12 Dic 2004 23:41

Re: Ejecutar Private sub desde un mí³dulo diferente

Notapor wenner » 12 Sep 2006 05:18

wenner";p="31059 escribió:Gracias Carlos, he probado como me has dicho pero no funcionaba lo he modificado de esta forma:

Application.Run "NombreArchivo.xls'!NombreMacro"

Y todo bien, ahora lo que quiero es no poner el nombre de archivo, es decir, que sea el libro abierto, he probado con Me pero no va.

Un saludo.


Lo que me funciona es:
Application.Run "'NombreArchivo.xls'!NombreMacro"
(lo habí­a puesto mal)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
wenner
Miembro Frecuente
Miembro Frecuente
 
Registrado: 12 Dic 2004 23:41

Re: Ejecutar Private sub desde un mí³dulo diferente

Notapor wenner » 12 Sep 2006 22:36

Solucionado, al que le interese:

Application.Run ("NombreMacro")
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
wenner
Miembro Frecuente
Miembro Frecuente
 
Registrado: 12 Dic 2004 23:41


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot], Inti y 7 invitados