Traducir el blog

Buscador de países

Posted on diciembre 12, 2023 by Excel Pedro Wave

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


Buscador de países en un mapa mundial

Para encontrar un país en un mapa del mundo hace falta un Buscador de países con el que sea fácil encontrar cualquiera de los 240 países dentro del mapa hecho en Excel con formas (shapes).

Con este Buscador de países se escriben las iniciales del país, por ejemplo las letras: es y se encuentra rápidamente el país buscado, en este caso: España entre los cinco que empiezan por esas dos letras.


También se pueden introducir caracteres comodín como asteriscos (*) o interrogantes (?), por ejemplo *pa?a obteniendo una lista de 4 países, entre ellos: España.

Y se puede elegir un país en el mapa haciendo clic sobre el mismo, con lo que aparece el nombre del país en el cuadro combinado.

Con este buscador de 240 países es fácil estudiar y aprender todos los países del mundo sin salir de Excel.


Problema del Buscador de países solucionado

La primera versión que hice del Buscador de países se cerraba intempestivamente sin dar ningún aviso cuando presionaba las teclas de avance y retroceso de página, <Av Pág> y <Re Pág>, o las teclas de flecha arriba y abajo.

El cierre de Excel se producía en la versión más reciente que tengo que es Excel para Microsoft 365, pues en Excel 2010 no ocurría. ¡Misterios de la ciencia y la técnica moderna!

Excel para MS365 se abría de nuevo avisándome que reparara el libro:

Como se por experiencia que es más dañino reparar un libro, porque se pierden objetos y datos por el camino, mientras se me ocurría como reparar las macros, cree este tema en el foro para ver si algún experto en Excel me podía ayudar:

Mi amigo Macro Antonio vino en mi ayuda indicándome cuál era la macro que generaba el cierre de Excel y a partir de ahí creo que conseguí resolver el problema.

A ese hilo del foro TodoExcel.com subí las 4 versiones del Buscador de países que hice para resolver el problema, por si quieres investigar por tu cuenta, que de los fallos es desde donde más se aprende... 🤔


Descarga el Buscador de países

Descarga la versión 4.0 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


Vídeo del Buscador de países

En este vídeo explico cómo usar el Buscador de países y cómo lo he hecho para que sea compatible con todas las versiones desde Excel 2010 hasta Excel para Microsoft 365.

Para conocer más detalles sigue leyendo.


Cómo insertar un cuadro combinado

Para insertar un cuadro combinado del tipo control ActiveX en una hoja de cálculo lee estas instrucciones:

Selecciona el de abajo: Cuadro combinado (control ActiveX).

Haciendo clic con el botón derecho del ratón sobre el cuadro combinado hay que editar algunas de sus Propiedades por categorías:

Apariencia: se modifica BackColor con el valor: &H80000018& para darle un color de fondo amarillo claro.

Comportamiento: se cambia MatchEntry a: 2-fmMatchEntryNone, para poder escribir cualquier cosa en la caja del cuadro combinado.

Dato: se cambia ListRows por ejemplo a 8 o 10, con el número de elementos a desplegar.

Varias: cambiar el nombre (Name): ComboBoxBuscador

Varias: editar LinkedCell con: Buscador!$K$1, la celda donde escribirá el cuadro combinado.

Varias: editar ListFillRange con: miListaPaíses, que es un nombre definido con la lista de países que se mostrará en el desplegable del cuadro combinado.

El resto de propiedades se dejan con su valor por defecto.


Hoja 'Buscador'

En la hoja 'Buscador' está la inteligencia natural con la que consigo obtener la lista de países que se mostrará en el desplegable del cuadro combinado.

Se podría hacer fácilmente con la inteligencia artificial de las nuevas funciones de Excel, pero entonces este Buscador no sería compatible con todas las versiones de Excel, desde la antigua versión de Excel 2010 hasta la más reciente versión de Excel para Microsoft 365.


La celda K1, denominada miBúsqueda, está vinculada al cuadro combinado y es el país o el texto que se muestra en él.

La celda K3, denominada miDesplegable, es el texto con el que se obtiene la lista desplegable de países y puede incluir caracteres comodín (* o ?) .

En la columna A está la lista completa de países ordenados alfabéticamente dentro de la tabla: TablaBuscador

En la columna C se obtienen todos los países buscados repetidos que comienzan por el texto de miDesplegable, dentro de la tabla: TablaPaísesBuscados

Esta búsqueda se hace con la fórmula de la celda C2 que se arrastra hacia abajo hasta la fila 244:

=SI(SI.ERROR(BUSCARV(miDesplegable&"*";$A2:$A$244;1;FALSO);"")="";"";SI.ERROR(BUSCARV(miDesplegable&"*";$A2:$A$244;1;FALSO);""))

Como en el rango $A2:$A$244 la celda inicial es relativa, la fórmula busca en el rango de celdas de su fila hasta la fila final, que es una referencia absoluta.

En la columna E se obtiene la lista de países buscados y no repetidos con esta fórmula matricial:

=SI.ERROR(INDICE(TablaPaísesBuscados;COINCIDIR(FILA(TablaPaísesBuscados)+1-FILA(INDICE(TablaPaísesBuscados;1));CONTAR.SI(TablaPaísesBuscados;"<="&INDICE(SI.ERROR(TablaPaísesBuscados&"";0);FILA(TablaPaísesBuscados)+1-FILA(INDICE(TablaPaísesBuscados;1))));0));"")

Esta fórmula se debe introducir en Excel 2010 con la combinación de teclas: Control + Mayús + Intro.

En las versiones recientes de Excel se introduce tal cual, pues la interpreta como una fórmula de matriz dinámica que se explica en el siguiente artículo:

En la columna G se obtiene la lista de países ordenados con esta fórmula matricial:

=SI.ERROR(INDICE($E$2:$E$244;K.ESIMO.MENOR(SI(SI.ERROR($E$2:$E$244&"";"")="";"";COINCIDIR(FILA($E$2:$E$244);FILA($E$2:$E$244);0));FILA($E$2:$E$244)+1-FILA(INDICE($E$2:$E$244;1))))&"";"")

El problema es que sigue siendo una lista con 244 filas.

En la columna I se obtiene la lista de países que se desplegarán en el cuadro combinado, en un rango de filas con el número de países encontrados, gracias a esta fórmula matricial:

=INDICE(Buscador!$G$2:$G$244;1):INDICE(Buscador!$G$2:$G$244;MAX(1;CONTAR.SI(Buscador!$G$2:$G$244;"?*")))

Con esta última fórmula se crea en el Administrador de nombres el nombre definido: miListaPaíses, con el que se ha editado la propiedad del cuadro combinado: ListFillRange

Con este nombre definido se consigue desplegar dinámicamente la lista de países buscados en el desplegable del cuadro combinado de la hoja 'Mapa'.


Cómo busca los países en el mapa

Para buscar los países hacen falta macros que relacionen el nombre del país con la forma (shape) del país en el mapa.

Lo primero es detectar el evento de foco en el cuadro combinado de la hoja 'Mapa':

Este evento llama a la macro que despliega la lista de 240 países en el cuadro combinado:

Observa que si se despliega en diferido hace falta llamar al Método Application.OnTime (Excel) | Microsoft Learn, pues he detectado que en ese caso no ejecuta el DropDown dentro de la macro.

La escritura de cualquier texto en el cuadro combinado se escucha con el evento:

Este evento llama a la macro que busca los países:

Si no hay nada escrito, borra los colores de los países en el mapa.

Si se escribe un texto con o sin comodines que no sea el nombre de un país, despliega la lista de países buscados.

Si se escribe el nombre de un país, o se selecciona con el ratón o con las teclas de flechas o de avance o retroceso de página, se colorea el país en el mapa.

Si se hace clic sobre un país en el mapa, se escribe su nombre en el cuadro combinado, con la macro que tienen asignada todas las formas (shapes) de los países:


Colección de mapas del mundo

Esta es la cuarta entrega de un mapa del mundo que pronto podrás descargar y probar, y que incorporará todas las funciones y características que voy publicando estas últimas semanas aquí:

Espero acabarlo antes de que acabe el año. ¡Estate atento!

No Response to "Buscador de países"

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