Traducir el blog

Nuevo Control de Usuario personalizable

Posted on diciembre 06, 2023 by Excel Pedro Wave

🔝To translate this blog post to your language, select it in the top left Google box.


Nuevo Control de Usuario personalizable

Para controlar el mapa del mundo, que estoy desarrollando y que pronto publicaré, he diseñado un nuevo Control de Usuario personalizable, con el que no hay necesidad de saber programar Formularios de Usuario (UserForm) en VBA.

Lo he creado con dos formas (shapes), una con una captura de un rango de celdas con la cámara de Excel, y otra con un control de etiqueta (control ActiveX) con el que detecto los clics con el ratón sobre la forma del nuevo control.

Con este nuevo Control de Usuario puedo mostrar datos de cualquier país y personalizar cualquier acción sobre el mapa: zoom, scroll, voz, etiquetas, reinicio, modo de vuelo, tamaño del control, enlaces externos, etc.

En esta imagen animada está situado arriba a la derecha con los datos de España.

Si quieres saber cómo lo he hecho, o si quieres incorporarlo en tus proyectos, ¡sigue leyendo!


Diseño del nuevo Control de Usuario

El aspecto del nuevo Control de Usuario se ha diseñado en la hoja 'Información', con fórmulas, formatos condicionales e insertando símbolos para las teclas.

El nombre del país está en el rango B2:G3 con hipervínculos creados en una fórmula para visitar el país en la Wikipedia.

El nombre oficial está en el rango B4:G5 y su capital en el rango B6:G6.

La población en el rango B7:G7 y la superficie en el rango B8:G8.

Los idiomas en el rango B9:G10, las monedas en el rango B11:G12 y el Código ISO 3166-1 del país con su abreviatura en 3 letras en el rango B13:G14.

Lo interesante viene en el rango B15:G17 con 18 celdas, en 3 filas y 6 columnas, que serán las teclas virtuales de este nuevo Control de Usuario.

Para situarse en este control se definen el eje X con 6 columnas y el eje Y con 16 filas.

La última tecla pulsada se indica en la celda F20 para el valor de X y en la celda H20 para el valor de Y.

El modo de vuelo seleccionado queda guardado en la celda B20. En este ejemplo solamente puede ser la chincheta por simplificación, pues la selección del país no se hace con el "puntero" que se comentó en artículos anteriores, sino que se hace directamente pinchando en las formas de los países.

He insertado símbolos de la fuente de caracteres Webdings para crear las teclas y caracteres Wingdings para crear las flechas.

El color de las teclas por defecto es azul y cambia a color rojo o a un color de fondo más oscuro con dos formatos condicionales en la hoja 'Información'. Ver la siguiente imagen.

Si usas este nuevo Control de Usuario ya no tendrás que programar Formularios de Usuario tan rígidos sino que podrás diseñar el control dentro de una hoja de Excel con las ventajas de personalización del diseño y de los formatos que se pueden representar dentro de las celdas.


Visualización del nuevo Control de Usuario

En la hoja 'Mapa' se visualiza arriba a la derecha el nuevo Control de Usuario.

Se visualiza con la forma (shape) de la imagen capturada por la cámara de Excel, denominada F_Información

=Información!$B$2:$G$17

con la fórmula apuntando al rango de celdas de la hoja 'Información' que aparecen en el cuadro de control.

Se controla su uso con un control de etiqueta (control ActiveX) denominado: F_Etiqueta_Info.

Este control de etiqueta está por encima de la imagen, para obtener la posición del cursor sobre el control cuando se hace clic sobre él, con lo que se determina qué tecla actúa. Se puede hacer clic en cualquier parte del control.


Programación del Control de Usuario

En la hoja 'Mapa' del proyecto VBA he codificado el evento F_Etiqueta_Info_MouseDown, con el que se obtienen las coordenadas X e Y al hacer clic con el ratón sobre el Control de Usuario.


Este evento llama a la macro: ControlMapa, pasándole la posición X e Y relativa a la anchura y a la altura del control, respectivamente.

Lo importante está en estas dos instrucciones que obtienen la posición relativa en el rango de celdas Información!B2:G17 y escriben X e Y en las celdas F20 y H20 respectivamente:

  • .Range("miTeclaX").Value2 = Int(sgX * 6) + 1
  • .Range("miTeclaY").Value2 = IIf(sgY < 0.73, Int(sgY / 0.73 * 13) + 1, Int((sgY - 0.73) / 0.09) + 14)

Este código deberá ser modificado si el control cambia ese rango de celdas para añadir o quitar filas o columnas.

En la celda F20 ahora se escribe un valor de X del 1 al 6, para indicar que columna se ha seleccionado al hacer clic en el control.

En la celda H20 ahora se escribe un valor de Y del 1 al 16, para indicar que fila se ha seleccionado al hacer clic en el control.

La siguiente instrucción concatena los valores de Y y X en una variable que sirve para seleccionar todos los casos de celdas seleccionadas:

  • iYX = .Range("miTeclaY").Value2 & .Range("miTeclaX").Value2

El primer caso encontrado es el valor: Case Is < 51

que indica que se ha pulsado en una celda cualquiera en el rango B2:G5 y la acción se hará con la macro: IrWeb, que no explicaré aquí.

Si Case 142, se ha pulsado la tecla de la celda C15 y se reiniciará el mapa con la macro: ReiniciarMapa

Para ver todas las acciones contempladas en este ejemplo tendrás que descargar el archivo más abajo.

La macro: ColocarInfo, coloca el Control de Usuario en la hoja 'Mapa', por lo que habrá que modificarla al gusto del usuario final.

Básicamente sitúa las formas del control arriba a la derecha y una encima de la otra.


Vídeo del nuevo Control de Usuario

En este vídeo explico cómo usar el nuevo Control de Usuario y cómo está hecho, por si no te ha quedado claro leyendo lo anterior.


Descarga el nuevo Control de Usuario

Descarga la versión 1.2 desde uno de estos enlaces:

Las macros del archivo descargado están bloqueadas por defecto. Para desbloquear las macros debes modificar las Propiedades del archivo siguiendo estas instrucciones:

Las macros de Internet están bloqueadas de forma predeterminada en Office - Deploy Office | Microsoft Learn

Abre el archivo y presiona el botón: Habilitar edición cuando aparezca el aviso de VISTA PROTEGIDA.

Presiona el botón: Habilitar contenido cuando aparezca la ADVERTENCIA DE SEGURIDAD Las macros se han deshabilitado o se deshabilitó parte del contenido activo.

Las hojas están protegidas sin contraseña y no está protegido el proyecto VBA, por lo que puedes estudiar y analizar el código de las macros.

ATENCIÓN: Se puede modificar este libro de Excel respetando esta licencia:

Creative Commons — Atribución-NoComercial-CompartirIgual 3.0 No portada — CC BY-NC-SA 3.0


Reflexiones

Este ejercicio de diseño y desarrollo lo hago en plan educativo, en primer lugar como reto a mis neuronas para que no envejezcan demasiado pronto, y en segundo lugar como ideas educativas para los maestros que enseñan Excel en sus clases, sin olvidar enseñar a quienes no hayan visto aún un mapa en su vida como usuarios de Excel que ¡sí, se puede!

Pronto publicaré un mapa completo del mundo con todas las funciones y características que voy publicando estas últimas semanas aquí:

Aún me queda añadir la posibilidad de buscar países, que saldrá en el próximo artículo. ¡Estate atento!

No Response to "Nuevo Control de Usuario personalizable"

Leave A Reply

Dime si te gusta lo que lees y, si no te gusta, dime por qué. Tengo habilitada la moderación de comentarios. Tu comentario se publicará pronto.

Mi lista de blogs