Hoy os presento la versión inicial del mapa de México por Estados Federales para que le podáis usar en Excel, Powerpoint, Word o alguna de las herramientas habituales de ofimática. Se trata de un archivo Excel con macros que os podéis descargar en este enlace. La hoja Mapa contiene una serie de shapes que están nombrados para poder cambiar de color en función de una variable tramo. Este Excel inicial está preparado para poder pintar hasta 5 tramos, si deseáis más tramos tenéis que meteros en el código Excel que modifica el color de cada uno de los 32 shapes que componen el mapa, posteriormente lo repasamos de forma rápida. Por otro lado tenemos la división de los estados, el nombre de los shapes y los tramos que previamente habremos preparado. Este ejemplo no pinta nada concreto. La hoja Mapa además dispone de dos botones asociados a las dos macros que contiene el Excel. Por un lado tenemos una macro que nos deja los Estados en blanco y por otro tenemos la macro que nos pinta de cada color elegido el mapa.Un vistazo sobre estos elementos de la hoja Excel:
El nombre de la columna Estado se puede modificar. Los nombres están sacados de Wikipedia, entiendo que no deberían de plantear ningún problema. Lo que no se puede modificar es la columna name que contiene el nombre asociado a la imagen de windows. Cada uno de los elementos del mapa se asocian a la variable tramo a través de la columna name. La variable tramo es la que nos realiza el mapa de colores, recordamos que sólo tenemos 5 tramos. Los botones son los que ejecutan las macros.
Las macros que lleva el Excel son:
'Esta macro pone el color de todos los estados en blanco
Sub ColorOriginalFormas()
Dim K As Integer
Dim Hoja As Worksheet
Set Hoja = Worksheets("Mapa")
For K = 1 To Hoja.Shapes.Count
Hoja.Shapes(K).Fill.ForeColor.RGB = RGB(256, 256, 256)
Next K
End Sub
Esta macro recorre todos los shapes de la hoja Mapa y los pone en blanco. La otra macro es:
'Macro para colorear cada Estado en función de una variable tramo.
'Los datos de tramo han de ser hechos.
Sub Tramos()
Dim Poblaciones() As Variant
Dim K As Long
Dim Hoja As Worksheet
Poblaciones = Worksheets("Mapa").Range("Q1").CurrentRegion.Value
Set Hoja = Worksheets("Mapa")
If Hoja.Shapes(1).Type = msoGroup Then Hoja.Shapes(1).Ungroup
For K = 2 To UBound(Poblaciones, 1)
With Hoja.Shapes(Poblaciones(K, 2)).Fill.ForeColor
If Poblaciones(K, 3) = 1 Then .RGB = RGB(0, 0, 256)
If Poblaciones(K, 3) = 2 Then .RGB = RGB(256, 256, 128)
If Poblaciones(K, 3) = 3 Then .RGB = RGB(128, 256, 256)
If Poblaciones(K, 3) = 4 Then .RGB = RGB(128, 128, 256)
If Poblaciones(K, 3) = 5 Then .RGB = RGB(256, 128, 0)
End With
Next K
End Sub
Esta macro, al igual que la anterior, son conocidas por los seguidores del blog porque ya aparecieron en una entrada anterior. Para el rango poblaciones vamos recorriendo el elemento que contiene el nombre y en función de él modificamos el color del objeto seleccionado. Lo hacemos mediante código RGB, si deseamos tener un nuevo tramo podemos añadir una nueva condición, por otro lado si deseamos eliminar un tramo sólo eliminamos la condición. Siempre tendremos en cuenta que si añadimos o eliminamos tramos tenemos que modificar la leyenda.
El mapa tiene algunas limitaciones:
- Es muy feo
- No pinta las islas, pero esta labor es sencilla
- Sólo está preparado para 5 tramos, se debe preparar para más
- No se actualiza la leyenda
- Habría que incluir el mar, países limítrofes,…
En fin, si alguien lo mejora o detecta algún error que se ponga en contacto conmigo y solventaremos los posibles problemas. Saludos.
Hola! Este post me sirve en demacía pero supongamos que yo lo necesito reproducir pero con el mapa de USA tendrás alguna entrada de como hacer desde el mapa?
Me ayudarías muchisimo
Gracias
Hola, lo apunto por si puede ser de utilidad. El siguiente mapa en Excel será de USA. Tenía pensado hacerlo de Colombia.
Sentí la necesidad de manifestar mi agradecimiento. Es lo que necesitaba. Gracias.
Y es sobre el mapa de mi país.
Muchas gracias, se están cocinando nuevas versiones mejoradas, muy mejoradas, de los mapas en Excel. Además del mapa de Colombia. Saludos.
Gracias por la ayuda, me fue de mucha utilidad
ME Podrias decir como aumento el rango de estados, necesito más solo tiene 32 quiero aumentar ese rango
Sólo tienes que ponerlos en la columna Q. Pero ojo, si añades más estados necesitas que tengan su correspondiente shape asociado.
Este excel lo que hace es asociar un shape a una característica. Es la versión más simple.
MUCHAS GRACIAS!!! EXACTAMENTE LO QUE BUSCABA!
mil y un gracias! está padrísimo el mapa. Tendrán un mapa mundi así??
Graacias graacias!
Buenas tardes:
El Mapa de Colombia en excel lo tendrias?. Si me lo pudieras facilitar te lo agradeceria.
Excelente aportación, yo lo utilicé en mi trabajo haciendo algunas modificaciones en el código de visual basic, de manera que ahora ilumina solo los estados que seleccionamos, y de acuerdo al volumen de venta en cada estado, este se va iluminando de verdes-amarillos-naranjas-rojos. Dejando en negro aquellos estados que no tienen venta.
EXCELENTE APORTACIÓN.
Mi estimado, yo no manejo prácticamente nada de VB y requiero algo similar a lo que mencionó Homero que hizo con tu plantilla.
Sin embargo, quiero agradecerte el excelente aporte y sobre todo por compartirlo abiertamente, en verdad felicitaciones!
Muchas gracias por tu aporte… Me ayudó bastante en un proyecto… Rediseñé los parámetros y me funcionó de maravilla… MUCHAS GRACIAS…
Eres la ostia tio!! Gracias!
Homero! No se usar Visual Basic podras compartir el archivo relacionado con ventas me serviria muchisimo!
Hola,
Homero, no creo que vayas a leer esto. No me di cuenta en su momento. ¿Podías enviar esa versión del mapa de México para Excel?
Saludos.
hola homero magnifica creacion podria regalarnos una copia, creo serie muchisima utilidad para mas de uno saludos
la verdad está de lujo, tendrás una última versión??
mil gracias.
Hola, muchas gracias por compatir está excelente y muy útil. Sería posible que se puedan agregar 2 tramos más? Me ayudaría muchísimo. Necesito dividir el país en al menos 6 regiones. Mil gracias
Muchas gracias por compartir este ejercicio me fue muy útil
Hola, oye que buen trabajo bro, de verdad muy bueno, oye una pregunta, como le puedo hacer para hacer básicamente la misma idea pero por municipio, cada municipio de cada estado y poder colorearlo por tramos?
Saludos.
No te imaginas como te agradezco que hayas compartido esto, me ayudaste mucho para mi tesis.
Ojalá existiera más gente como tú que comparte lo que sabe y lo que hace!!!
¡¡¡MUCHÍSIMAS GRACIAS!!!!
Saludos
Karla
Mil gracias , con esta ayuda hoy si podre dormir tranquilo, viendo los comentarios si llegaras a tener otros mapas mucho te agradecere los dejes linkeados, son de gran ayuda.
Excelente trabajo, me ayudó mucho porque es justo lo que andaba buscando. Gracias.
Gracias a vosotros. Os recuerdo que si hacéis mejores versiones podéis mandarlas por correo a rvaquerizo@analisisydecision.es y las colgaré en el blog. Saludos.
Excelente Herramienta, gracias por el apoyo
exelente amigo justo lo que necesitaba
Excelente herramienta, podrías dar un tutorial de cómo hacerle con municipios?? Gracias
Hola, La herramienta está excelente, sabrás si existe una de México pero por municipios? -Estoy dispuesto a comprarlo de ser necesario, pero no lo encuentro en google. :( Alguien conoce un mapa como este por municipios?
Muchas gracias por tan valiosa y útil herramienta; hace tiempo venía buscando algo similar para utilizar en la oficina y esto resultó ser justo lo que necesitaba.
Muy buen trabajo brother, felicidades y gracias por el aporte, Saludos!!
UNA DUDA, PODEMOS AGREGARLE EL NOMBRE A CADA ESTADO? ESTA SUPER BIEN ESTE FILE, GRACIAS!
Hola Thelma, no te queda otra que añadir un cuadro de texto a cada forma, además si trabajas con ese cuadro de texto puedes hacer unos mapas espectaculares.
Hola :
Como podria elaborar algo similar pero de la Ciudad de Mexico y su area metropolitana
De hecho tengo el mapa
Saludos
Julio Cesar Gonzalez Cruz
l
Excelente aporte, solo una cosa Homero nos podemos ayudar con el mapa que vos realizaste.
Gracia!!
Mil gracias!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
chiidooo…one…..te debo una….gracias…
gracias!!!! me sirvio demasiado!!!!! excelente trabajo
Buena tarde. Aprecio muy funcional el mapa aunque me gustaría saber cómo puedo cambiar los colores que tiene predeterminados.
Emmanuel. Los colores los fijas en:
If Poblaciones(K, 3) = 1 Then .RGB = RGB(0, 0, 256)
If Poblaciones(K, 3) = 2 Then .RGB = RGB(256, 256, 128)
If Poblaciones(K, 3) = 3 Then .RGB = RGB(128, 256, 256)
If Poblaciones(K, 3) = 4 Then .RGB = RGB(128, 128, 256)
If Poblaciones(K, 3) = 5 Then .RGB = RGB(256, 128, 0)
Juega con los RGB y podrás modificar estos colores. Saludos.
Muchas gracias!!!
es una forma interesante de ver mi pais con macros y la de utilidad que se le puede dar.
MUCHAS GRACIAS
Hola, muchas gracias por la plantilla .xls, la verdad que es muy práctica, me gustaría saber si Homero ha subido ya su adaptación o si existe una versión mejorada?, quiero agregrar un color diferente a cada Estado y de acuerdo a las estadísticas que varíe la graduación, tal como existe en la funcion de formato condicional del programa excel, ya se imaginarán lo complicado que es para mí siendo que no soy programador, por lo menos he aprendido mucho en unas cuantas horas, saludos.
les envío en forma de agradecimiento, los primeros 29 colores en degradado que usé para agregarlos a su proyecto, sólo 29 se que están bien porque fueron los que yo necesitaba para las categorías que hice, al final puse sin corroborar un tono negro, y dos intermedios entre ellos para que ya tengan los 32 estados azulez. saludos
Sub Tramos()
Dim Poblaciones() As Variant
Dim K As Long
Dim Hoja As Worksheet
Poblaciones = Worksheets(«Mapa»).Range(«Q1»).CurrentRegion.Value
Set Hoja = Worksheets(«Mapa»)
If Hoja.Shapes(1).Type = msoGroup Then Hoja.Shapes(1).Ungroup
For K = 2 To UBound(Poblaciones, 1)
With Hoja.Shapes(Poblaciones(K, 2)).Fill.ForeColor
If Poblaciones(K, 3) = 1 Then .RGB = RGB(247, 251, 255)
If Poblaciones(K, 3) = 2 Then .RGB = RGB(240, 246, 252)
If Poblaciones(K, 3) = 3 Then .RGB = RGB(233, 242, 250)
If Poblaciones(K, 3) = 4 Then .RGB = RGB(226, 237, 248)
If Poblaciones(K, 3) = 5 Then .RGB = RGB(219, 233, 246)
If Poblaciones(K, 3) = 6 Then .RGB = RGB(213, 229, 244)
If Poblaciones(K, 3) = 7 Then .RGB = RGB(206, 224, 241)
If Poblaciones(K, 3) = 8 Then .RGB = RGB(199, 220, 239)
If Poblaciones(K, 3) = 9 Then .RGB = RGB(190, 215, 236)
If Poblaciones(K, 3) = 10 Then .RGB = RGB(179, 210, 232)
If Poblaciones(K, 3) = 11 Then .RGB = RGB(168, 206, 228)
If Poblaciones(K, 3) = 12 Then .RGB = RGB(156, 201, 224)
If Poblaciones(K, 3) = 13 Then .RGB = RGB(142, 193, 221)
If Poblaciones(K, 3) = 14 Then .RGB = RGB(128, 186, 218)
If Poblaciones(K, 3) = 15 Then .RGB = RGB(114, 178, 215)
If Poblaciones(K, 3) = 16 Then .RGB = RGB(102, 170, 212)
If Poblaciones(K, 3) = 17 Then .RGB = RGB(90, 162, 207)
If Poblaciones(K, 3) = 18 Then .RGB = RGB(79, 155, 203)
If Poblaciones(K, 3) = 19 Then .RGB = RGB(68, 147, 198)
If Poblaciones(K, 3) = 20 Then .RGB = RGB(58, 138, 194)
If Poblaciones(K, 3) = 21 Then .RGB = RGB(49, 129, 189)
If Poblaciones(K, 3) = 22 Then .RGB = RGB(40, 120, 184)
If Poblaciones(K, 3) = 23 Then .RGB = RGB(31, 111, 179)
If Poblaciones(K, 3) = 24 Then .RGB = RGB(24, 101, 172)
If Poblaciones(K, 3) = 25 Then .RGB = RGB(16, 92, 164)
If Poblaciones(K, 3) = 26 Then .RGB = RGB(9, 82, 157)
If Poblaciones(K, 3) = 27 Then .RGB = RGB(8, 71, 142)
If Poblaciones(K, 3) = 28 Then .RGB = RGB(8, 59, 124)
If Poblaciones(K, 3) = 29 Then .RGB = RGB(8, 48, 107)
If Poblaciones(K, 3) = 30 Then .RGB = RGB(8, 38, 81)
If Poblaciones(K, 3) = 31 Then .RGB = RGB(8, 28, 60)
If Poblaciones(K, 3) = 32 Then .RGB = RGB(8, 8, 40)
End With
Next K
End Sub
me puedes ayudar nesecito hacer un mapa del d.f
Hola necesito el mapa de yucatan por municipios
Excelente!!
MAGNIFICO, y muchas gracias por compartirlo
Gracias, me ha sido de utilidad
Hola buenas noches tu mapa me ha sido muy útil… lamentablemente no se programación y no se como agregar tramos. Me podrías orientar para agregar otros 4 colores? Y si se pudiera por municipios creo que ya es mucho pedir, pero es excelente el mapa!!
Pingback: Creación personalizada de mapa en VBA/Excel | MeXcel Plus
Muchas gracias por compartirlo!, justo lo que andaba buscando
HAY POSIBILIDAD DE QUE UN ESTADO SE PUEDA PINTAR EN DOS COLORES??
Gracias!!! ¿Hay uno de México, Canadá y EEUU?
De casualidad alguien tiene el mapa del peru?
SUPER UTIL!!
GRACIAS
Buenisimo, mil gracias!