Traducir el blog

Clases de municipios españoles

Posted on enero 15, 2024 by Excel Pedro Wave

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


Esta es la segunda entrega sobre municipios españoles, con la particularidad de que este mapa está hecho con un módulo de clase, de ahí el título de esta entrega: Clases de municipios españoles, que puede servir para dar clases educativas sobre los pueblos y ciudades de España.

Pasando el ratón por encima de los puntos del mapa se obtiene el municipio con sus datos, como su población y su altitud, ayudado por un módulo de clase en lenguaje VBA, pues el gráfico de dispersión no admite eventos por defecto.

Una imagen vale más que mil palabras.


Clases de municipios

Si dudabas que hay diferentes clases de municipios, los habitantes de su población son un filtro poderoso para saber la importancia de los 8.131 municipios españoles.

No es lo mismo Zaragoza con más de 600.000 habitantes que mi pueblo con unos 600 habitantes. La mitad de los pueblos españoles tienen menos de 500 habitantes y 1.356 municipios tienen menos de 100 habitantes.

No es lo mismo vivir a 200 metros de altitud que a 1 metro en la costa, pues el nivel de los mares puede subir más de lo previsto si el cambio climático se acelera. En España hay 33 municipios a menos de 5 metros de altitud.

No es lo mismo estar a más de 1.500 metros de altitud, como lo están 6 pueblos de Ávila, uno de Gerona (el único del Pirineo) y 5 de Teruel. El municipio más elevado de España es Valdelinares en Teruel a 1.695 metros de altitud.

No es lo mismo sufrir los rigores del clima según la longitud y latitud del municipio. Y si no que se lo digan a los canarios que gozan de un clima totalmente diferente a los peninsulares.

Todas estas clases de municipios se pueden analizar con este mapa...

Los datos de los 8.131 municipios se han copiado del:

Seleccionando: Nomenclátor Geográfico de Municipios y Entidades de Población 

Y descargando el archivo comprimido: BD_Municipios-Entidades.zip

Extrayendo dos archivos:

  • PROVINCIAS.csv, con la relación entre provincias y comunidades autonómicas.
  • MUNICIPIOS.csv, con datos de todos los municipios españoles.

Datos copiados a dos tablas en sendas hojas de 'PROVINCIAS' y 'MUNICIPIOS'.


Descarga Clases de municipios españoles

Este mapa con Clases de municipios españoles es compatible con todas las versiones de escritorio, desde Excel 2010 hasta Excel para Microsoft 365.

Descarga la versión 1.1 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-No portada — CC BY-NC-SA 4.0


Vídeo: Clases de municipios españoles

En el vídeo explico cómo usar este mapa de clases de municipios españoles.


Mejoras de este mapa

En la primera entrega expliqué cómo hice el primer mapa de municipios de España, por lo que no repetiré esa información aquí, ya que se puede leer en este enlace:

Las mejoras de esta segunda entrega sobre la primera son:

1) Mucha más funcionalidad gracias a las macros VBA.

2) Filtra automáticamente por Población mayor que un número de habitantes.

3) Selección con el ratón de un municipio.

4) Detecta los municipios sobre los que pasa el cursor del ratón.

5) Obtiene automáticamente los datos de los municipios.

6) Tamaño de los municipios según su población.

7) Etiquetas de los municipios en el mapa.

A continuación doy más detalles de cómo se han implementado estos cambios.


Cambios en la hoja 'DATOS'

La tabla de municipios, denominada: TablaEspaña, de la hoja 'DATOS' se rellena con fórmulas que obtienen los datos de las hojas 'MUNICIPIOS' y 'PROVINCIAS'.

Sus campos son: Comunidades autónomas; Provincias; Municipios; Longitud; Latitud y Población.

Estos datos son el origen de la tabla dinámica de municipios, con la que se obtienen los puntos del gráfico de dispersión desde las columnas O y P.

En la celda R2 se guarda el punto seleccionado del mapa o por el que acaba de pasar el ratón. Con ese valor se obtienen los datos del municipio.

En el rango R6:R13 están varios valores del filtro de población por defecto.

En la celda R17 se guarda el valor de la casilla de etiquetas.

En la celda R21 se guarda el valor de la casilla de municipios según su población.

En la celda R25 se guarda el valor de la casilla de contornos de provincias.

Cuando hay cambios en el rango de la columna M, con la población de la tabla dinámica, se dispara el evento Worksheet_Change, que llama a la macro: CambiarMunicipios.


Eventos del gráfico de dispersión

Si nunca has usado módulos de clase, esta es la mejor ocasión para comenzar con estas Clases de municipios españoles.

Por defecto no se pueden usar eventos en los gráficos incrustados, por lo que hace falta insertar un módulo de clase para escuchar los eventos del gráfico de dispersión. Más información en esta página:

Por lo que he creado el módulo de clase: CChartEvent

Definiendo el objecto EventChart para escuchar eventos:

Public WithEvents EventChart As Chart

En ese módulo de clase cancelo los eventos de doble clic y de botón derecho del ratón y atiendo los eventos de selección de un punto del gráfico, gracias al código de Jon Peltier.

El principal evento es el del movimiento del ratón: EventChart_MouseMove

que permite identificar el punto sobre el que pasa el ratón, llamando a la macro: IdentificarPunto x, y

Que ejecuta: EventChart.GetChartElement x, y, ElementID, Arg1, Arg2

En el último argumento (Arg2) se obtiene el número del punto del gráfico sobre el que ha pasado el ratón, con lo que se puede obtener información del municipio asociado a ese punto...

El método GetChartElement devuelve información sobre el elemento de gráfico en las coordenadas x e y especificadas. Este método tiene la particularidad de que sólo se especifican los valores de los dos primeros argumentos. Microsoft Excel rellena el resto de los argumentos y el código debe examinar sus valores al finalizar el método.

Sin embargo, antes de ejecutar los procedimientos, se debe conectar el objeto declarado en el módulo de clase con el gráfico incrustado.

Para ello, en el módulo MóduloMunicipios se declara:

Dim clsChartEvent As New CChartEvent

Y se indica a qué gráfico se le habilitan los eventos:

Set clsChartEvent.EventChart
Sheets("MAPA").ChartObjects("Gráfico Municipios").Chart

¡Ya se puede pasar el ratón por encima para interactuar con el mapa!

¡Esta es la mejora más importante de este mapa! ¿Qué te parece?


Tamaño de los municipios según su población

Cuando se marca la casilla: Municipios según su población, el tamaño de los puntos varía según la población del municipio, con la macro: CambiarMunicipios

Se cambia el tamaño de cada marcador dependiendo de la población.

Si se desmarca la casilla, todos los marcadores son del mismo tamaño, con los puntos iguales de todos los municipios.


Etiquetas de los municipios

Cuando se marca la casilla: Etiqueta hasta 200 municipios, al lado de cada punto se muestra la etiqueta con el nombre del municipio, con la macro: CambiarMunicipios

Si hay más de 200 municipios filtrados, no se muestra ninguna etiqueta. Tampoco si se demarca la casilla.


Filtro automático por población

En la celda Q6 se introduce un valor de población, con lo que se filtran automáticamente los municipios que son mayores de ese valor.

Para llegar a esa celda cuando está activo el gráfico, se debe teclear <Esc> (la tecla de arriba a la izquierda en el teclado) y luego la tecla <Tab> (la tecla encima de Bloq Mayús)

En la celda Q6 hay un desplegable con algunos valores de Población, pero se puede introducir cualquier número mayor o igual que cero.

Este filtro se hace en la hoja 'MAPA', con el evento Worksheet_Change que refresca automáticamente la tabla dinámica de la hoja 'DATOS' y refresca todo el libro.


Marcar los contornos de las provincias

En los comentarios del vídeo me han sugerido marcar más el contorno de las provincias, que está muy difuminado. Por lo que he añadido una casilla para marcar los contornos de las provincias, con la macro: CambiarContornoMapa.

¿Queda más claro?


Más mapas de municipios

En este enlace están todas las entregas dedicadas a los municipios españoles que he escrito hasta ahora:

En la próxima entrega exploraré filtros alternativos a las segmentaciones de datos.

No Response to "Clases de municipios españoles"

Leave A Reply

Indícame las erratas que encuentres y qué es lo que te gustaría ver en los próximos artículos.

Mi lista de blogs