Saltar al contenido

Macro que escribe código VBA ????


Recommended Posts

publicado

¿Alguien sabe si existe una manera de escribir una macro - por ejemplo en el libro de macros personal - que escriba código en los módulos de VBA de otros libros?

El caso concreto en que esto podrías ser útil es el siguiente: tengo 20 archivos en uso por parte de los empleados de una empresa, cada uno de los cuales es exactamente igual a los demás y contiene las mismas macros, sólo que cada uno de los empleados usa su archivo para registrar sus propios datos.

Tengo que hacer un cambio en las macros de todos los archivos, y si no hay manera de "escribir una macro que escriba macros" tendré que ingresar a los archivos uno por uno y cambiar los códigos manualmente.

Desde ya, muchas gracias.

publicado

.

 

Lo mas correcto, es que tuvieras 1 libro con la macro y 20 libros solo con los datos, de esta manera, cada usuario tendría 2 libros.

Cada vez que modificaras la macro solo tendrías que sustituir el archivo con la macro en el resto de equipos. 

 

Pero contestando a tu consulta, te dejo 2 macros, una exporta el módulo que quieras, la otra lo importa.

 

¡¡¡ Muy importante !!!

Ambas macros deben estar en un módulo distinto al modulo que se desea Exportar/Importar.

 

Sub Exportar(Módulo As String)
Archivo = ThisWorkbook.Path & "\" & Módulo & ".bas"
Set ProyectoVBA = ActiveWorkbook.VBProject
Set Componente = ProyectoVBA.VBComponents(Módulo)
Componente.Export (Archivo)
End Sub

Sub Importar(Módulo As String)
Archivo = ThisWorkbook.Path & "\" & Módulo & ".bas"
Set ProyectoVBA = ActiveWorkbook.VBProject
Set Componente = ProyectoVBA.VBComponents(Módulo)
ProyectoVBA.VBComponents.Remove Componente
ProyectoVBA.VBComponents.Import (Archivo)
End Sub

 

Ejemplo para Exportar/Importar el Módulo1:

Sub Exporto()
Exportar "Módulo1"
End Sub

Sub Importo()
Importar "Módulo1"
End Sub

 

Ninguna de las macros puede estar en el Módulo1

 

.

 

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.