Saltar al contenido

Conocer el alto de la Hoja y posición vertical del scroll


Recommended Posts

publicado

Buen día, tengo la siguiente pregunta, tengo un shape en la hoja y al hacer click en este, quiero insertar otro shape, la cosa es que este segundo shp quiero que aparezca dentro del área visible de la hoja, el segundo shape debería aparecer debajo del primero, pero si el primero esta muy abajo el segundo debería mostrarse por enzima del primero para que quede en el área visible de la hoja. pongo una imagen a continuación

image.png.6190f59c641903f524bec450f8970556.png

en el primer cuadro se muestra bien en el segundo es como no quisiera que salga, y el tercero la solución para el segundo cuadro

ahora bien a la hora de insertar tendría que preguntar

if shape1.top + shape1.height + shape2.height - hoja.VerticalScroll.pos > hoja.Height then ....

la cosa es que no existen las propiedades hoja.height y hoja.VerticalScroll, sugerencias?

 

 

publicado

perfecto Antoni, asi quedo

Option Explicit

Public Sub MostrarShape()
    Dim Shape2 As Shape
    Const NewShapeHeight = 200
    Dim lTop As Long
    On Error Resume Next
    ActiveSheet.Shapes("Shape2").Delete
    With ActiveSheet.Shapes("Shape1")
        lTop = .Top + .Height - ActiveSheet.Cells(Application.ActiveWindow.ScrollRow, 1).Top
        If lTop + NewShapeHeight > ActiveWindow.VisibleRange.Rows.Height Then
            Set Shape2 = ActiveSheet.Shapes.AddShape(msoShapeRectangle, .Left, .Top - NewShapeHeight, .Width, NewShapeHeight)
        Else
            Set Shape2 = ActiveSheet.Shapes.AddShape(msoShapeRectangle, .Left, .Top + .Height, .Width, NewShapeHeight)
        End If
        Shape2.Fill.ForeColor.RGB = vbRed
        Shape2.Name = "Shape2"

        
    End With
End Sub

Muchas Gracias!

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.