Copiar un código de un libro y pegarlo en la hoja 3 de otro mediante vba
publicado
Hola a todos. Tengo un problema con una aplicación en Excel que estoy realizando para mi trabajo. La cuestión es que, en el libro que he creado, he puesto bastante código VBA para automatizar acciones distintas. Entre otras cosas, he colocada código en distintos eventos de una hoja del libro (la hoja 3): en los eventos Whorksheet_change, whorksheet_selectionchange y whorksheet_beforerightclick. Esto funciona todo perfectamente. La cuestión es que se trata de un control horario, por lo que cada compañero que lo utilice, debería poder guardar los horarios de sus fichajes, por lo que, ponerlo como libro compartido no me parece una buena opción (ya que se guardaría todo, los fichajes de todos ¿no? (si no es así, por favor os agradecería me lo hicierais saber) En principio, la idea era que cada uno tuviese su propia copia en su ordenador y listo, cada cual guarda su libro y arreglado... Pero, si hubiese que modificar el código, o bien lo modifico en el original y que lo vuelvan a copiar (con lo cual perderían los datos guardados) o lo modifico en todos y cada uno de los libros, lo cual es inviable. Se me ocurrió entonces crear dos libros, uno conteniendo todos los códigos y el otro, que sería el que cada uno copiase en su ordenador, "llamaría a estos códigos" mediante:
Workbooks.Open ThisWorkbook.Path & "\Códigolibro.xlsm" 'para localizar el libro independientemente de la unidad en que se encuentre
Application.Run "'códigolibro.xlsm'!abrir" ' para ejecutar la macro "abrir" de "códigolibro"
Esto funciona bien, pero no puedo hacerlo funcionar en los eventos de las hojas que mencionaba en un principio. Como quiera que se trata de códigos bastante largos en algunos casos, querría tenerlos también en un solo libro. La cuestión es: ¿Sería posible copiar el código de la hoja 3 del libro "códigolibro" y pegarlo en la hoja 3 del libro "Control horario" mediante una macro o un código colocado en el evento auto_open o en el evento activate de la hoja 3 del libro de destino? Y, de ser así, ¿cómo podría hacerlo? Adjunto un ejemplo del código de la hoja 3 que os comentaba...
Hola a todos. Tengo un problema con una aplicación en Excel que estoy realizando para mi trabajo. La cuestión es que, en el libro que he creado, he puesto bastante código VBA para automatizar acciones distintas. Entre otras cosas, he colocada código en distintos eventos de una hoja del libro (la hoja 3): en los eventos Whorksheet_change, whorksheet_selectionchange y whorksheet_beforerightclick. Esto funciona todo perfectamente. La cuestión es que se trata de un control horario, por lo que cada compañero que lo utilice, debería poder guardar los horarios de sus fichajes, por lo que, ponerlo como libro compartido no me parece una buena opción (ya que se guardaría todo, los fichajes de todos ¿no? (si no es así, por favor os agradecería me lo hicierais saber) En principio, la idea era que cada uno tuviese su propia copia en su ordenador y listo, cada cual guarda su libro y arreglado... Pero, si hubiese que modificar el código, o bien lo modifico en el original y que lo vuelvan a copiar (con lo cual perderían los datos guardados) o lo modifico en todos y cada uno de los libros, lo cual es inviable. Se me ocurrió entonces crear dos libros, uno conteniendo todos los códigos y el otro, que sería el que cada uno copiase en su ordenador, "llamaría a estos códigos" mediante:
Workbooks.Open ThisWorkbook.Path & "\Códigolibro.xlsm" 'para localizar el libro independientemente de la unidad en que se encuentre
Application.Run "'códigolibro.xlsm'!abrir" ' para ejecutar la macro "abrir" de "códigolibro"
Esto funciona bien, pero no puedo hacerlo funcionar en los eventos de las hojas que mencionaba en un principio. Como quiera que se trata de códigos bastante largos en algunos casos, querría tenerlos también en un solo libro. La cuestión es: ¿Sería posible copiar el código de la hoja 3 del libro "códigolibro" y pegarlo en la hoja 3 del libro "Control horario" mediante una macro o un código colocado en el evento auto_open o en el evento activate de la hoja 3 del libro de destino? Y, de ser así, ¿cómo podría hacerlo? Adjunto un ejemplo del código de la hoja 3 que os comentaba...
Gracias a todos por vuestra ayuda
ejemplo.docx