Cálculo de la distancia entre la parte superior de la ventana y la fila 1 (Microsoft Excel)
Cuando crea un UserForm, Louis establece la propiedad Top del UserForm en 222, que determinó por ensayo y error es la distancia de píxeles entre el borde superior de la ventana activa y la parte superior de la primera fila de datos en la hoja de trabajo. Se pregunta si hay alguna forma de calcular esta distancia de forma programática, dado que la distancia puede variar según la cantidad de cinta que se muestre y la altura de la barra de fórmulas.
Si necesita obtener la altura del área de la cinta, puede examinar la propiedad Height del objeto CommandBars («Ribbon»), de esta manera:
iHt = CommandBars("Ribbon").Height
Eso, por supuesto, le dará solo una parte de la información que necesita en última instancia. La información de posicionamiento de un UserForm se basa en la esquina superior izquierda de la ventana del programa. Por lo tanto, debe tener en cuenta el grosor del borde de la ventana (si hay un borde), la altura de la cinta (mencionada anteriormente, pero solo si se ejecuta en una versión de Excel que usa la cinta), la altura de la barra de fórmulas , cualquier espacio permitido para la regla, etc.
La mayoría de estas cosas no tienen propiedades de Altura que pueda verificar, por lo que colocar un UserForm puede ser un proceso de prueba y error en orden.
Una vez que haya colocado el UserForm correctamente en su sistema, no hay garantía de que se coloque correctamente si se muestra en el sistema de otra persona.
La mejor solución que hemos encontrado es (en este caso) no reinventar la rueda. Chip Pearson, en su sitio web, ha creado lo que él llama un «posicionador de formularios» que elimina las conjeturas al posicionar un UserForm. Puedes encontrar información al respecto aquí:
http://www.cpearson.com/Excel/FormPosition.htm
No hay cargo; es gratis. Le permite colocar un formulario de usuario en relación con cualquier celda de la pantalla. Si desarrolla macros que se basan en UserForms, querrá ver lo que Chip tiene para ofrecer.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (2309) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.