Ayuda con mi Macro

9 envíos / 0 nuevos
Último envío
UliCs
Imagen de UliCs
Offline
última acción: Hace 14 años 11 meses
alta: 19/10/2009 - 02:53
Puntos: 125
Ayuda con mi Macro

Hola Amigos soy nuevo en este foro y la verdad necesito de su ayuda.

Tengo la idea de hacer un complemeto para que haga una copia de la hoja activa en un libro nuevo  "Este no es el problema"

en el libro nuevo quiero agregar una modulo con algunas rutinas "Proteger la hoja y Desproteger" o agregar una rutina al Mismo libro que genere "Este es el problema"

Digamne por favor si hay alguna forma de hacerlo

Please!!!!

 

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 mes 2 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Ayuda con mi Macro

para editar el código de programación desde la propia programación, debes emplear la propiedad VBProject del libro.

dentro tienes la propiedad VBcomponents que representa los diferentes módulos etc que forman tu proyecto.

por ejemplo, puedes utilizar ActiveWorkbook.VBProject.VBComponents.Import "tucodigo.bas" para importar al libro activo un módulo que tengas guardado en un archivo llamado "tucodigo.bas" (yo prefiero tener el código en un archivo diferente)

Tienes distintos métodos y propiedades para añadir módulos quitarlos, etc.

si quieres escribir el código desde dentro de la macro, aquí he encontrado un ejemplo. es el primero que he visto, no sé si será muy bueno o muy malo. es para Word, así que habla de thisdocument en vez de thisworksheet, pero puede servir para tener alguna pista de cómo hacerlo http://www.vbcity.com/forums/topic.asp?tid=63305


------
Ya sé Excel, pero necesito más
La potencia sin control no sirve de nada.
agradecimientos

 

------
Ya sé Excel, pero necesito más.

UliCs
Imagen de UliCs
Offline
última acción: Hace 14 años 11 meses
alta: 19/10/2009 - 02:53
Puntos: 125
Re: Ayuda con mi Macro

Hola Muchas Gracias por la ayuda.

Pero tengo que decir la verdad. podrias ser mas explicito por que la verdad tengo nociones pero no soy un master como vos.

ayudame por favor.

 

Necesito saber Mas

Necesito saber Mas
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 mes 2 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Ayuda con mi Macro

yo haría lo siguiente:

en el complemento crearía un módulo con los procedimientos que quieras pasar al nuevo libro

crea un módulo con el código que quieras copiar a los nuevo libros

Luego, el procedimiento que cree el nuevo libro y copie el contenido de este procedimiento tendría un aspecto como el siguiente:

 

Sub CopiarModuloNuevoLibro()
  Const NombreMódulo = "Procedimientos" 'nombre del procedimiento, para identificarlo
  
  Workbooks.Add 'creo un nuevo libro, que pasa a ser el activo por estar recién creado
  With ActiveWorkbook.VBProject
    ' creo el nuevo módulo
    .VBComponents.Add(vbext_ct_StdModule).CodeModule = NombreMódulo

    ' borro posibles líneas que se hayan escrito automaticamente al crear el módulo
    ' es para prevenir duplicados de Option Explicit y cosas así
    .VBComponents(NombreMódulo).CodeModule.DeleteLines 1, _

      .VBComponents(NombreMódulo).CodeModule.CountOfLines
    ' copio las líneas del código
    .VBComponents(NombreMódulo).CodeModule.AddFromString _
    ThisWorkbook.VBProject.VBComponents(NombreMódulo).CodeModule.Lines(1, ThisWorkbook.VBProject.VBComponents(NombreMódulo).CodeModule.CountOfLines)
    
  End With
End Sub

 

pruebalo a ver qué tal y me cuentas.


------
Ya sé Excel, pero necesito más
La potencia sin control no sirve de nada.
agradecimientos

 

------
Ya sé Excel, pero necesito más.

UliCs
Imagen de UliCs
Offline
última acción: Hace 14 años 11 meses
alta: 19/10/2009 - 02:53
Puntos: 125
Re: Ayuda con mi Macro

Soss. un Genio.

me dio un poco de problemas al inicio, pero navegando por ahi tuve que que habilitar la Referencia de Microsoft. Visual Basic for Apllications Extensibility 5.3

y funciono de maravilla

Gracias nuevamente.

ahora me surgio otra duda como lo puedo agregar a una hoja especifica o al mismo ThisWorkBook?

 

Necesito saber Mas

Necesito saber Mas
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 mes 2 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Ayuda con mi Macro

En el editor de VBA, simplemente haz doble clic sobre la hoja o el libro donde quieras guardar el código. Esto abre a la derecha el código asociado a la hoja o al libro. En la barra de la aplicación aparece qué código estás editando.

al hacer doble clic se edita el código asociado


------
Ya sé Excel, pero necesito más
La potencia sin control no sirve de nada.
agradecimientos

 

------
Ya sé Excel, pero necesito más.

UliCs
Imagen de UliCs
Offline
última acción: Hace 14 años 11 meses
alta: 19/10/2009 - 02:53
Puntos: 125
Re: Ayuda con mi Macro

Perdon yo me referia a correr la Macro y copiar el codigo en la hoja creada o en ThisWorkBook del libro creado.

Muchas Gracias por tu ayuda en verdad que eres un genio

 

 

Necesito saber Mas

Necesito saber Mas
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 mes 2 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Ayuda con mi Macro

El truco está en VBComponents. De todos los componentes del proyecto, le decimos que lo escriba en el código del libro.

por ejemplo, en este caso en que escribimos en el libro activo, para escribir un texto en el código del libro:

ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromString "'hola"

Este ThisWorkbook es un texto, no es el objeto Thisworkbook que se refiere a tu complemento, es el componente del proyecto de Visual Basic que se llama "ThisWorkbook" dentro del libro activo.

 


------
Ya sé Excel, pero necesito más
La potencia sin control no sirve de nada.
agradecimientos

 

------
Ya sé Excel, pero necesito más.

UliCs
Imagen de UliCs
Offline
última acción: Hace 14 años 11 meses
alta: 19/10/2009 - 02:53
Puntos: 125
Re: Ayuda con mi Macro

Oooohh muchas Gracias, ya entendi solo por curiosidad en el caso de querer meter una rutina algo larga la forma de dar renglon seria con (Chr(10))

Nuevamente Gracias.

Saludos!!!!!

 

 

Necesito saber Mas

Necesito saber Mas