Mapa Excel de Europa

24 Abr

mapa_excel_europa1

Un lector me había pedido disponer en Excel de un mapa de Europa y dicho y hecho. Además en este Excel os muestro como hacer paletas de colores más o menos atractivas y como poder usarlas indistintamente con el mapa. Este Excel además contiene algunas líneas de Visual Basic que considero interesantes y que veremos después. Los shape están sacados de este link, pero se retoca completamente el código Visual Basic para hacerlo (a mi entender) más sencillo. El mapa se controla desde esta zona del Excel:

mapa_excel_europa2

El Dato es lo que vamos a pintar. Evidentemente tenéis que cruzar los datos con los nombres de los 37 países que se pintan en el mapa. Disponéis del nombre en inglés y del código de país para poder hacer este cruce previo. Pero quedaros con lo siguiente, lo único que podéis modificar es el nombre en inglés, por si preferís hacer vuestro VLookp o BUSCARV por nombre en español. Lo que vais a pintar está en la columna Dato pero en este caso se añade la selección de la paleta de colores que podéis emplear de las 4 que propongo. Si sois lectores del blog y un poco espabilados podréis crear vuestras propias paletas de colores, tampoco os lo puedo poner tan fácil. Las paletas que pongo a vuestra disposición son:
mapa_excel_europa3

Estas 4 paletas pintan rangos de 5, 10 y los 37 países. La seleccionáis en la celda P2 y automáticamente se dividen en el número necesario de rangos y si pulsáis el botón colores podéis ver como quedarían esos colores. No podéis cambiar los colores directamente en la paleta, no saldrá, necesitáis crearla.

En cuanto al Visual Basic empleado es el mismo de todos los mapas Excel que tenéis en el blog pero poco a poco se va haciendo más simple:

Sub colorpais()

Dim pais As String
Dim i As Integer
Dim rngPais As Range

Set rngPais = Range(ThisWorkbook.Names(«pais»).RefersTo)

actualiza_colores

Sheets(«mapa»).Select

‘ESTA PARTE PONE LOS COLORES DE LAS FORMAS
For i = 1 To rngPais.Rows.Count
pais = «S_» & rngPais.Cells(i, 2)

ActiveSheet.Shapes(pais).Select
ActiveSheet.Shapes(pais).Fill.ForeColor.RGB = rngPais.Cells(i, 3).Interior.Color
ActiveSheet.Shapes(pais).Line.ForeColor.RGB = rngPais.Cells(i, 3).Interior.Color
‘ActiveSheet.Shapes(pais).Line.Weight = 0.25
Next i

Cells(1, 1).Select

End Sub

Sub actualiza_colores()

Sheets(«mapa»).Select
Dim rngColor As Range
Dim i As Integer
Dim colorin As Long

Set rngColor = Range(ThisWorkbook.Names(«pintar»).RefersTo)

For i = 1 To rngColor.Rows.Count
colorin = rngColor.Cells(i, 3)
rngColor.Cells(i, 1).Interior.Color = colorin
rngColor.Cells(i, 2).Interior.Color = colorin
Next i

End Sub

Dos partes diferenciadas, la parte que actualiza colores y la parte que aplica esos colores a los shape del mapa. He preferido hacerlo así para que podáis ver si los colores se adaptan a lo que queréis pintar. En ocasiones mi código VB puede parecer engorroso pero lo hago para poner puntos de control. Un detalle, si deseáis marcar la línea de separación de los países debéis modificar la línea: ActiveSheet.Shapes(pais).Line.ForeColor.RGB = 0 os pinta una línea en negro. Creo que es un mapa sencillo y vistoso, espero que os sea de utilidad, me consta que por lo menos para un lector si.

El archivo Excel que contiene el mapa os le podéis descargar en este link:

Mapa_Europa_Excel

Saludos.

8 respuestas a «Mapa Excel de Europa»

  1. Me gustaria saber como puedo crear y modificar mapas de los municipios de Cantabria y de los Estados de Estados Unidos como los que ha hecho usted. Gracias de antemano ;) ;)

  2. Hola rvaquerizo,

    ¿Como has hecho para fijar las escalas de color como color de celda?

    Gracias de antemano. Tu trabajo nos hace mejorar a muchos.

    Saludos

  3. He hecho un mapa de España por municipios en R con datos de Excel, me gustaría que alguien me dijera si se pueden agrupar los municipios directamente en el mapa, sin tener que estar buscándolos en el mapa y cambiándolos en el excel

  4. Hola rvaquerizo,

    me gustaría saber como se le pueden añadir a los países el nombre y un % para que aparezcan representados en el mapa.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *