Mostrar nivel de zoom en una celda

Pues... Esa es la pregunta. ¿Es posible que, al seleccionar un nivel de zoom (bien arrastrando el deslizador, bien seleccionando el número del nivel e introduciendo uno personalizado) ese número que indica el nivel quede reflejado en una celda?

2 respuestas

Respuesta
4

A mi entender no hay evento que controle el cambio de zoom como para indicártelo en alguna celda.

Pero siguiendo el lema de Gabriel, imaginé que luego de cambiar el zoom seleccionarás alguna celda... y eso sí se puede programar.

Entra al Editor, selecciona con doble clic la hoja donde quieras colocar el zoom, y allí copia este código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
[A1] = ActiveWindow.Zoom
End Sub

Si necesitas que en cada hoja se muestre el zoom aplicado, el código se coloca en el objeto ThisWorkbook (o Este libro), siendo entonces:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.[A1] = ActiveWindow.Zoom
End Sub

Espero te sirvan las ideas. No olvides valorar las respuestas.

Gracias por tu ayuda. En principio, parece que puede servirme, aunque veremos como programo el resto. En definitiva, se trata de ampliar el zoom al seleccionar una celda cualquiera de un rango (en mi caso G7:G38) ya que en ese rango, cada celda es una lista de validación y, puesto que no se puede cambiar el tamaño de letra de las listas y se ve muy pequeño, pues apliqué esta solución:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
Dim RangoDeBusqueda As Range
Set RangoDeBusqueda = Application.Intersect(Target, Range("G7:G38"))
If Not RangoDeBusqueda Is Nothing Then
        ActiveWindow.Zoom = 120
Else
       ActiveWindow.Zoom = 70
End If

End Sub

Y funciona correctamente, ahora bien, al volver a "quitar el zoom" (ActiveWindow.Zoom = 70) me encuentro con que, como cada ordenador tiene una configuración de pantalla distinta y el tamaño de las mismas también es distinto, pues resulta que en algún ordenador se ve demasiado pequeña o demasiado grande, y, claro, hay que ajustarlo manualmente constantemente. Es por eso que se me ocurrió que se podría intentar dando el valor del zoom a una celda concreta, de manera que se ajustase el zoom la primera vez que se utilice el programa, y luego en la línea de código ActiveWindow.Zoom = 70, sustituir 70 por el valor de esa celda (por ejemplo ActiveWindow.Zoom = [a1].value)

Muchas gracias una vez más. Intentaré buscar una solución y, si doy con una forma de hacerlo, os comento.

Podrías colocar el zoom en la celda en el evento Open, o sea al abrir el libro. Seleccionando cada hoja donde quieras evaluar esto:

Private Sub Workbook_Open()
Application.ScreenUpdating = False
hojas = Array("Sheet1", "Sheet2")
For i = 0 To 1
    Sheets(hojas(i)).Select
    ActiveSheet.[G1] = ActiveWindow.Zoom
Next i
Sheets("PORTADA").Select
End Sub

Y luego si, tal como lo comentas, hacer referencia al zoom de la celda (G1 en mi caso)

       ActiveWindow.Zoom = [G1]

Sdos!

¡Gracias! Muchísimas gracias. Funciona a las mil maravillas. Ahora basta con ajustar el nivel de zoom la primera vez que entras y guardar los cambios. A partir de ese momento, siempre ajusta el nivel de zoom adecuadamente y se ve la pantalla completa...

Muchas gracias una vez más.

Respuesta
1

¿En una sola celda? Me parece que no se puede. :c

¡Gracias por tu pronta respuesta y por tu ayuda! No sé si podrás ver lo que le comentaba a Elsa Matilde... Te comento lo mismo que a ella... Seguiré intentando y si lo consigo os lo haré saber...

Muchas gracias una vez más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas