Saltar al contenido

Objeto siempre en la parte superior derecha


Antoni

Recommended Posts

publicado

Hola:

He decidido dedicarme unos días a investigar propiedades y métodos poco usuales de los objetos Excel.

Hoy he descubierto la propiedad VisibleRange del objeto Window.

Esta propiedad te devuelve, como su nombre indica, el rango visible de una ventana, incluso si variamos la dimensión de la ventana.

En el adjunto encontrareis una aplicación de esta propiedad.

Posicionaros en cualquier celda del libro, y vereis como la imagen siempre aparece en la parte superior derecha.

Variar el tamaño de la ventana y al seleccionar cualquier celda volverá a aparecer la imagen en la parte superior derecha de la ventana incluso en un rango distinto.

Enjoy it !

TopRightImage.zip

publicado

¡Salve! Macro

Yo conocía esta otra opción, proporcionada por Hector Miguel a una consulta del amigo Gali

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Dentro_de As String, Debe_estar_en As String
Dentro_de = ActiveWindow.VisibleRange.Address
With Range(Dentro_de)
Debe_estar_en = .Offset(1, .Columns.Count - 5).Resize(1, 1).Address
End With
With Me.Shapes("imagen1")
If .TopLeftCell.Address = Debe_estar_en Then Exit Sub
.Left = Range(Debe_estar_en).Left: _
.Top = Range(Debe_estar_en).Top
End With
End Sub[/CODE]

La he sacado a relucir al ver tu opción principalmente porque la pregunta de Gali era realmente interesante véase https://www.ayudaexcel.com/foro/showthread.php?t=16339, donde el compañero neverdelimon daba una buena opción al "mantenimiento" de la posición al hacer scroll.

Yo le he dado algunas vueltas... y peor que en Cannas o en Trasímeno.

Ya que estás por la tarea de investigar propiedades y métodos poco usuales... ¿porqué no haces alguna prueba (si te sientes con ganas) con el tema del scroll y nos cuentas tus resultados?

Un saludo desde Vitoria

publicado

Hola Ioyama & remainder of masters & commanders:

Entre mi inglés y la falta de conocimientos de software base, me ha sido imposible seguir la totalidad del proceso de implantación del módulo de clase que detecta los eventos del Scroll. Llega un momento en que se produce un error y no hay manera de subsanarlo.

Supongo que a lo que te referías con investigar el tema de Scroll eran los eventos, porqué supongo que el resto está claro. Si no lo está, coméntalo, y pondré unos ejemplos.

Ave a to2

publicado

Hola Macro

En efecto, a los eventos me refería.

Un saludo desde Vitoria y que sus investigaciones "poco usuales" sigan bien y nos ilustren a todos.

  • 2 months later...
publicado

Muy buenos los dos ejemplos Macro Antonio e ioyama,

Justo me hacia falta algo simple para fijar una imagen y veo el post este :rolleyes:

ioyama, el tema de eventos me interesa. Le echaré un vistazo y si tengo algún resultado ya lo pondré por el foro.

Saludos!

EDIT: ioyama, ya he probado el modulo del que hablaba galileogali en el link que mencionas.

He leido el articulo de Pearson. Tras instalar la libreria SSubTmr6.DLL y tras usar un rato su libro excel, he llegado a una conclusión parecida a varios comentarios que encontré por el camino. No merece la pena, (desde mi humilde punto de vista), usar toda esa parafernalia de código solo para detectar los eventos de la barra.

Por lo visto, al usar c y c++ la comunicación de windows con las ventanas, genera tanto trafico de información que VB6 no es capaz de capturarlo todo sin perder casi toda su eficacia, por lo que la captura de paquetes la han reducido a un 1/12, de ahí todo ese código de en el artículo de Pearson.

Durante el uso del archivo, se producían errores fatales del excel, perdiendo todos los cambios realizados. El mas común, al darle STOP a cualquier macro que estuviera realizando.

Poder se puede, pero por lo menos yo no creo que consiguiera hacerlo funcionar sin fallos, sería ideal que fuera una función mas asociada a un evento de hoja. Si se me ocurre algo o encuentro mas informacion al respecto la pondré por aqui.

Un saludo.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.