Bloquear, sólo en una hoja, la herramienta zoom en excel 2010
Publicado por Luis (1 intervención) el 21/11/2016 01:12:31
Tengo un archivo en Excel 2010, con una macro y funciones.- En este archivo tengo 2 hojas. En una de estas hojas tengo una consulta a una base de datos, que es de donde extraigo la información buscada. En la otra hoja tengo una presentación similar a un formulario (no es un objeto formulario, es una planilla con aspecto a un formulario), en donde en cada celda tengo implementada una función de consulta (CONSULTAV) la cual me trae el correspondiente dato del campo (columna) de la hoja en la que está dicha consulta. Sumado a esto, en dicha hoja en el que está el formulario, tengo un objeto o control Activex que me trae una imagen asociada al registro seleccionado. Dicho control tiene implementado unas líneas de código para mostrar en la misma hoja, la imagen en cuestión. En una de esas celdas del formulario hice una validación de datos que me sirve para seleccionar un dato (número id) que es el registro que mostrará la información requerida, juntamente con la imagen asociada. Todo funciona a la perfección, excepto a la hora de hacer zoom en la hoja del formulario. Si yo aumento o disminuyo el zoom (trabajo con el zoom al 100%) se descompagina el objeto ActiveX. Se corre de lugar, me tapa las otras celdas en la que se muestra información. Esto presumo que es un problema de compatibilidad de este control activex con el propio excel.
Mi pregunta es: Habrá alguna/s líneas de código en VBA que se puedan implementar para que se pueda bloquear el Zoom al 100 %, pero solamente en la Hoja en la que tengo el formulario, no así, en la restante hoja del libro, en la cual pueda usar el Zoom a mi antojo. He visto un ejemplo que le muestro a continuación, pero no me funcionó:
:::::::::
1° 'asegurate' de que el zoom 'actual' [de 'esa' hoja] es el 'adecuado'
:::::::::
2° copia las siguientes lineas en el modulo de codigo de 'la hoja'...
::::::::::::
3° copia las siguientes lineas en un modulo de codigo 'normal'...
::::::::::::
4° [finalmente] 'repite' la instruccion de 'la hoja' ['Workshet_Deactivate']
en el evento '_BeforeClose' del libro [ThisWorkbook]
=>de otra manera, PERMANECERAN 'des-habilitdos' para la siguiente sesion<=
[si la 'ultima hoja activa' es la que los 'des-habilita'] =>es solo 'para estar seguros'<= ;)
::::::::::
Espero vuestra ayuda, desde ya muchas gracias...
Mi pregunta es: Habrá alguna/s líneas de código en VBA que se puedan implementar para que se pueda bloquear el Zoom al 100 %, pero solamente en la Hoja en la que tengo el formulario, no así, en la restante hoja del libro, en la cual pueda usar el Zoom a mi antojo. He visto un ejemplo que le muestro a continuación, pero no me funcionó:
:::::::::
1° 'asegurate' de que el zoom 'actual' [de 'esa' hoja] es el 'adecuado'
:::::::::
2° copia las siguientes lineas en el modulo de codigo de 'la hoja'...
1
2
3
4
5
6
Private Sub Worksheet_Activate()
Zoom_OnOff False
End Sub
Private Sub Worksheet_Deactivate()
Zoom_OnOff True
End Sub
3° copia las siguientes lineas en un modulo de codigo 'normal'...
1
2
3
4
5
6
7
8
9
10
Option Private Module
Sub Zoom_OnOff(ByVal OnOff As Boolean)
Dim ComandoZom As CommandBarControl
For Each ComandoZoom In CommandBars.FindControls(ID:=925)
ComandoZoom.Enabled = OnOff
Next
For Each ComandoZoom In CommandBars.FindControls(ID:=1733)
ComandoZoom.Enabled = OnOff
Next
End Sub
4° [finalmente] 'repite' la instruccion de 'la hoja' ['Workshet_Deactivate']
en el evento '_BeforeClose' del libro [ThisWorkbook]
=>de otra manera, PERMANECERAN 'des-habilitdos' para la siguiente sesion<=
[si la 'ultima hoja activa' es la que los 'des-habilita'] =>es solo 'para estar seguros'<= ;)
1
2
3
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Zoom_OnOff True
End Sub
Espero vuestra ayuda, desde ya muchas gracias...
Valora esta pregunta


0