Llamar subrutinas desde otras hojas y archivos

Hola!
Tengo 2 clase de archivos, en 1 capturo información de diferentes formatos y en el 2o tipo, están los formatos. Mi duda es la siguiente:
1. En el archivo de formatos tengo varias hojas con ciertas celdas protegidas e hice un macro para limpiar los rangos libres (no protegidos) y en la ultima de las hojas se concentra información del resto. ¿Es posible crear un botón que me permita correr los macros de las otras hojas desde una hoja determinada?
2. ¿Se pueden correr subrutinas de un archivo especifico desde otro archivo?

1 respuesta

Respuesta
1
Lo que pides se puede hacer fácilmente, te sitúas en la hoja desde la que quieres ejecutar las macros de las otras hojas, pincha arriba en Ver>barra de herramientas>Cuadro de controles te aparecerá una barra de herramientas flotante, pincha en el icono de botón y dibujas un botón en tu hoja, ahora pinchas con el derecho y eliges ver código, en la ventana que te aparece pegas el código de tu macro, pero como la estas ejecutando desde la Hoja1 (por ejemplo) la segunda linea de código tiene que llevarte a la hoja donde se ejecutará ( por ejemplo Hoja2) sería estas:
Sheets("Hoja2").Range("B3").Select
Si debe de empezar tu macro en la celda B3 naturalmente. Y a continuación todo tu código para que se ejecute en la hoja2. Si al final quieres volver a la Hoja1 pues antes del End Sub vuelves a poner:
Sheets("Hoja1").Range("C2").Select
Ya lo tienes echo, si quieres más macros, pues más botones. Le puedes cambiar el nombre al botón por una referencia a tus macros, pincha en el botón con el botón derecho del ratón y eliges Propiedades, en la ventana que aparece en la columna izquierda busca Caption y en la columna derecha pondrá CommandButton1 ( si es el primero) pues borras eso y pones lo que quieras "Macro hoja 2" por ejemplo y eso veras en el botón. Cada vez que quieras modificar algo en los botones debes de mostrar la barra de herramientas cuadro de controles, pinchas en el primer icono de arriba lado izquierdo donde aparece la leyenda vista diseño y ahora podrás modificar lo que quieras, si vista diseño no esta activa el botón si estará activo ( y al revés).
>Un saludo
>Julio
*Si te ha servido puntua y finaliza la pregunta
Hola!
Use la info que me diste para lo que necesito y me quedo así:
Private Sub CommandButton1_Click()
Sheets("OP-20-50").Range("B7:J20,B36:J36,B38:J38,N7:V36").Select
Selection.ClearContents
Sheets("OP-30").Range"N7:V35,B36:J36,B38:J38,B39:D40,A50:A53,B49:W53,B7:J15"). Select
Selection.ClearContents
Sheets("OP-40").Range("$B$7:$J$16,$B$36:$J$36,$B$38:$J$38,$B$39:$D$40,$N$7:$V$30").Select
Selection.ClearContents
Sheets("OP-60").Range("$B$36:$J$36,$B$38:$J$38,$B$39:$D$40,$B$7:$J$20,$N$7:$V$35").Select
Selection.ClearContents
Sheets("OP-70").Range("$B$36:$J$36,$B$38:$J$38,$B$39:$D$40,$N$7:$V$28,$B$7:$J$9").Select
Selection.ClearContents
End Sub
Y me marca error ya intente cambiando los rangos y los nombres a las hojas pero no funciona. Ademas, los rangos que estoy manejando son solamente las celdas desbloqueadas, ¿hay alguna forma de identificarlas sin poner el rango?
Julio muchas gracias ya vi el error, en lugar de poner Select directamente borre el contenido y funciono!
De acuerdo, si te sirvió puntúa y cierras la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas