Deseo crear una vista personalizada, pero que aplique de manera independiente y a voluntad a cada hoja que decida de un libro de 99 hojas. Hasta el momento lo he logrado en la hoja 1, pero al aplicarla en la hoja 2, lo hace en la 1 aun y cuando esté en la 2.
1 respuesta
Respuesta de calvuch
1
1
calvuch, las fallas constantes de esta web me cansaron!! me voy a...
Si lo lograste en la hoja1 y no lo hiciste mediante código, ¿cómo lo hiciste? ¿A qué llamas vista personalizada?
Bueno, seguí el manualito de la ayuda de excel, es decir, en la cinta, pestaña vista, sección Vistas de libro, vistas personalizadas... Analizando el código que obtuve (soy curioso) con la grabadora de macros, me otorgó: Sub Macro1() ' ' ActiveWorkbook.CustomViews.Add ViewName:="General", PrintSettings:=True, _ RowColSettings:=True Rows("10:17").Select Selection.EntireRow.Hidden = True Columns("E:H").Select Selection.EntireColumn.Hidden = True ActiveWorkbook.CustomViews.Add ViewName:="Especial", PrintSettings:=True, _ RowColSettings:=True Range("I5").Select ActiveWorkbook.CustomViews("General").Show Range("H7").Select ActiveWorkbook.CustomViews("Especial").Show Range("I7").Select ActiveWorkbook.CustomViews("General").Show End Sub Funciona re-bien para la hoja 1, pero al tratar de aplicarla a la hoja 2, ejecuta las acciones en la hoja 1, no en la 2... Veo que la instrucción está en ActiveWorkbook, no en ActiveSheet... lo que me hace pensar que las vistas no las ejecuta a nivel hoja, sino libro... y yo la ocupo para un libro de 99 hojas y activarla en una hoja específica a la vez, ¿situación qué no logro... donde guardará esta instrucción (las vistas) excel?, ¿Cómo le hago? Gracias por tu atención.
Si eso es lo malo con las vistas personalizadas, se agregan al objeto CustomViews, mediante indice, una lata. Te sugiero que hagas una nueva macro ( con el grabador de macros, que ya lo conoces), realizando las intervenciones que necesitas en una hoja cualquiera, luego de finalizar la macro, modificas las referencias de la hoja sobre la cual se ejecuto, modificando esas referencias por ActiveSheet, aloja el macro en un modulo y luego cada vez que lo invoques ejecutara la acción sobre la hoja activa y no sobre una especifica, ya que estarás utilizando ActiveSheet
Gracias, finalmente es lo que hice... hice mi macro ocultando filas, columnas, poniendo suma automática y... en fin, botón de comando en la cinta de opciones incluido. Lastima que no sea más flexible este objeto.